Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: fgets 的回车
我有这个代码:
char arch[80]; fgets (arch, sizeof(arch), stdin);
当我访问它的值时,arch会显示我输入的值stdin后跟一个问号,为什么会发生这种情况?
arch
stdin
fgets()存储尾随换行符:
fgets()
fgets() 从流中最多读入一个小于 size 的字符,并将它们存储到 s 指向的缓冲区中。在 EOF 或换行符后停止读取。如果读取了换行符,则将其存储到缓冲区中。'\0' 存储在缓冲区中的最后一个字符之后。
如果您在某种调试器中检查变量,则换行符可能会显示为“?”,或者您所说的“询问标记”。
我的猜测是它代表了\n你用来检查arch. SO有很多关于线路终止的问题,我相信你可以很容易地找到很多方法来处理它。
\n