首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Scanset不能识别c中的回车,为什么?

Scanset不能识别c中的回车,为什么?
EN

Stack Overflow用户
提问于 2014-09-24 01:49:42
回答 1查看 183关注 0票数 2

我正在尝试使用scanset将输入带到回车键,即按enter按钮。(在windows中,这等于\r\n,对吧?)现在,如果我在scanf()中写%[^\n]就行了,但不是为%[^\r]写的,据我所知它也应该行得通。那么这里的关键是什么呢?

代码语言:javascript
复制
#include <stdio.h>

int main()
{
    char str[120];

    scanf("%[^\r]", str);

    printf("%s",str);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-24 01:54:44

您正在从标准输入中读取。标准输入是文本输入流。在文本输入流中,行的末尾由\n字符指示,而不管它是否发生在“窗口上”。文本输入流的目的之一是确保在输入数据到达scanf时,该数据至少已经转换为与行结束相关的平台无关的形式。"On Windows“当\r\n组合到达你的scanf时,它已经被一个单独的\n替换了。您无法通过使用scanf读取标准的Windows输入来查看\r\n (即,除非您正在使用Unix input stream读取Windows文本文件)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26001544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档