fgets添加了一个询问标记

时间:2012-10-23 13:03:09

标签: c fgets

  

可能重复:
  carriage return by fgets

我有这段代码:

char arch[80];
fgets (arch, sizeof(arch), stdin); 

当我访问arch的值时,它显示我从stdin输入的值后跟一个询问标记,为什么会发生这种情况?

2 个答案:

答案 0 :(得分:4)

fgets()存储尾随换行符:

  

fgets()从流和中读取最多一个小于大小的字符   将它们存储到s指向的缓冲区中。读后停止了   EOF或换行符。如果读取换行符,则将其存储到缓冲区中。   “\ 0”存储在缓冲区中的最后一个字符之后。

如果您正在某种调试器中检查变量,则换行可能会显示为“?”,或者您所说的“询问标记”。

答案 1 :(得分:3)

我的猜测是它代表\n行终止符,用于检查arch的值。所以关于线路终端的问题很多很多,我相信你很容易找到一些的方法来处理它。