可能重复:
carriage return by fgets
我有这段代码:
char arch[80];
fgets (arch, sizeof(arch), stdin);
当我访问arch
的值时,它显示我从stdin
输入的值后跟一个询问标记,为什么会发生这种情况?
答案 0 :(得分:4)
fgets()
存储尾随换行符:
fgets()从流和中读取最多一个小于大小的字符 将它们存储到s指向的缓冲区中。读后停止了 EOF或换行符。如果读取换行符,则将其存储到缓冲区中。 “\ 0”存储在缓冲区中的最后一个字符之后。
如果您正在某种调试器中检查变量,则换行可能会显示为“?”,或者您所说的“询问标记”。
答案 1 :(得分:3)
我的猜测是它代表\n
行终止符,用于检查arch
的值。所以关于线路终端的问题很多很多,我相信你很容易找到一些的方法来处理它。