我对这个语法感到困惑。起初,我认为这是书中的印刷错误。但是,虽然编程了很长一段时间,我逐渐认识到它们有不同的含义。尽管如此,我仍然无法对这个语法有清晰的理解。
同样,在以下几个方面有什么区别:
gets( str);和gets(str);
空格重要吗?如果是,那怎么做?
发布于 2013-11-12 07:36:36
在scanf格式字符串中添加空格时,可以告诉scanf读取和跳过空格。例如,跳过输入中的换行符是有用的。另外要注意的是,有些格式会自动跳过空格。
参见例如这里有一个很好的参考的scanf系列函数。
之间的区别
gets(str);和
gets( str );一点都不是。字符串文字之外的实际代码可以使用任意数量的空格进行格式化。您甚至可以将上面的调用写成
gets
(
str
)
;还是一样的。
哦,而且gets函数早就被废弃了,甚至从最新的C标准中删除了。您应该使用fgets代替。
发布于 2013-11-12 07:37:02
格式字符串中的空白(如空格、制表符或换行符)匹配输入中的任意数量的空白,包括none。
http://www.manpagez.com/man/3/scanf/
在gets中,这个空间并不意味着什么。它在编译时被忽略。
发布于 2013-11-12 08:27:02
编译器有多个阶段,在第一阶段词法分析中,所有不必要的空格都被删除--这也是当时将被删除的不必要的空间,因此,gets(a) and gets( a)之间没有区别。
https://stackoverflow.com/questions/19923405
复制相似问题