2012-10-23 44 views

回答

3

我的猜测是它代表了\n行终止符,无论您用什么来检查arch的值。 SO有很多有关线路终端的问题,我相信你可以很容易地找到的方式来处理它。

+0

什么是SO?我认为fgets会比scanf更好...我试图从标准输入中获取文件名,我不想要'?'在上面。 – cracq

+0

SO是堆栈溢出。如果你知道它在那里,剥掉换行符就像'arch [strlen(arch)-1] = 0'一样简单。 –

4

fgets()存储其后的换行符:

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

如果您在某种调试器中检查变量,可能是换行符显示为“?”,或者是“询问标记”所表达的任何内容。