我正在尝试使用scanset将输入带到回车键,即按enter按钮。(在windows中,这等于\r\n,对吧?)现在,如果我在scanf()中写%[^\n]
就行了,但不是为%[^\r]
写的,据我所知它也应该行得通。那么这里的关键是什么呢?
#include <stdio.h>
int main()
{
char str[120];
scanf("%[^\r]", str);
printf("%s",str);
}
发布于 2014-09-24 01:54:44
您正在从标准输入中读取。标准输入是文本输入流。在文本输入流中,行的末尾由\n
字符指示,而不管它是否发生在“窗口上”。文本输入流的目的之一是确保在输入数据到达scanf
时,该数据至少已经转换为与行结束相关的平台无关的形式。"On Windows“当\r\n
组合到达你的scanf
时,它已经被一个单独的\n
替换了。您无法通过使用scanf
读取标准的Windows输入来查看\r\n
(即,除非您正在使用Unix input stream读取Windows文本文件)。
https://stackoverflow.com/questions/26001544
复制相似问题