【发布时间】:2014-05-17 09:58:52
【问题描述】:
以下两个scanf()函数有什么区别:
scanf(" %79[^\n]\n",name);
和
scanf(" %79[^\n]s\n",name);
我是 C 的新手,如果有人认为这是一个菜鸟问题,请原谅我。我做了所有我能做的研究,但我无法区分上述两者之间的区别。
以上两者的运作方式有何不同?第一个将从标准输入中获取所有字符(直到 79 个字符),直到遇到 '\n' 字符。那么第二个不会以同样的方式工作吗?我有这个疑问,因为在程序中第一个工作正常,但第二个未能正确输入字符串。
除了上面的主要问题之外,我认为 scanf 函数末尾的 '\n' 将从字符串输入期间输入的缓冲区中删除 '\n' 字符。我是对还是错?
【问题讨论】:
-
我推荐你阅读this reference。