首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“%s”、“%s”和“%s”之间有什么不同?

“%s”、“%s”和“%s”之间有什么不同?
EN

Stack Overflow用户
提问于 2013-11-12 07:35:09
回答 4查看 1.2K关注 0票数 1

我对这个语法感到困惑。起初,我认为这是书中的印刷错误。但是,虽然编程了很长一段时间,我逐渐认识到它们有不同的含义。尽管如此,我仍然无法对这个语法有清晰的理解。

同样,在以下几个方面有什么区别:

gets( str);gets(str);

空格重要吗?如果是,那怎么做?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-12 07:36:36

scanf格式字符串中添加空格时,可以告诉scanf读取和跳过空格。例如,跳过输入中的换行符是有用的。另外要注意的是,有些格式会自动跳过空格。

参见例如这里有一个很好的参考scanf系列函数。

之间的区别

代码语言:javascript
复制
gets(str);

代码语言:javascript
复制
gets( str );

一点都不是。字符串文字之外的实际代码可以使用任意数量的空格进行格式化。您甚至可以将上面的调用写成

代码语言:javascript
复制
gets
    (
        str
    )
;

还是一样的。

哦,而且gets函数早就被废弃了,甚至从最新的C标准中删除了。您应该使用fgets代替。

票数 5
EN

Stack Overflow用户

发布于 2013-11-12 07:37:02

格式字符串中的空白(如空格、制表符或换行符)匹配输入中的任意数量的空白,包括none

http://www.manpagez.com/man/3/scanf/

gets中,这个空间并不意味着什么。它在编译时被忽略。

票数 2
EN

Stack Overflow用户

发布于 2013-11-12 08:27:02

编译器有多个阶段,在第一阶段词法分析中,所有不必要的空格都被删除--这也是当时将被删除的不必要的空间,因此,gets(a) and gets( a)之间没有区别。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19923405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档