【问题标题】:What does %d mean? Why d and not another letter? [closed]%d 是什么意思?为什么是 d 而不是另一个字母? [关闭]
【发布时间】:2012-12-22 15:16:45
【问题描述】:

我刚开始学习 C,想问一些非常基本的问题。我根本没有任何编程背景。我刚刚开始学习教程 (http://www.cprogramming.com/tutorial/c-tutorial.html),有些事情没有解释。例如,在下面这个介绍性的简单程序中......

问题:他为什么使用“%d”——为什么是 d 而不是另一个字母?我知道 % 是模操作数,意思是余数,但为什么是 d?我知道 stdio.h 导入了要使用的术语库/词汇表,例如 printf 等…… %d 与此相同吗? :

#include <stdio.h>

int main()
{
    int this_is_a_number;

    printf( "Please enter a number: " );
    scanf( "%d", &this_is_a_number );
    printf( "You entered %d", this_is_a_number );
    getchar();
    return 0;
}

【问题讨论】:

  • 阅读您正在调用的函数的文档时发生了什么?
  • d in %d 代表十进制。您应该阅读有关 printf 格式字符串的信息:en.wikipedia.org/wiki/Printf_format_string 或简称 RTFM!
  • 我建议你修改你的学习方式。对于语言基础的每一分钟细节都跑到 StackOverflow 上是不好的。你不会得到最好的学习体验,你也不会从 StackOverflow 中得到最好的。相反,选择一本好的 C 教科书(我们在常见问题解答中有建议)并学习使用语言参考(例如 man)。然后自己解决尽可能多的问题,并制作简单的测试用例,以获得对每个单独组件的信心和理解。
  • “这个问题没有显示任何研究工作” - 解释大量的反对票。

标签: c printf c-strings


【解决方案1】:

实际上% 不是这里的模操作数或模运算符,因为它包含在字符串中。它只是一个选择来将文字文本与参数分开的字符。并且使用d 是因为它以d十进制(以10 为底)执行输入和输出。

【讨论】:

  • 实际上,% 有时是模运算符(没有反对)。
  • @JanDvorak:他没有说“操作员”,他说的是“操作数”。虽然这听起来很卡夫卡式,但并没有错:-S
  • 感谢大家的回答。 Mat:本教程非常基本/简短,因此省略了很多。我有 Denis Ritchie 的 C 书,接下来我会处理它。 @RBK:谢谢。有帮助。 Kerrek SB:近一年来,我一直在努力研究编程,阅读了一系列材料,但我就是学不来。我不是天才,但我也不傻。我试图避免带着基本问题来到 Stack Overflow。我来自新闻背景,我的态度是以非常基本的方式解释事情。我在计算机编程书籍/教程中根本看不到这一点。谢谢。
  • 我是说丹尼斯·M·里奇。还有布赖恩·W·克尼汉。我很紧张。
【解决方案2】:

在这种情况下,不是模运算符,而是一个符号,表示您希望以某种格式显示后续信息。该字母称为说明符

%d 表示您要将其显示为十进制整数。 %f 会将其显示为浮点数等。

man 中的更多内容:http://linux.die.net/man/3/printf

【讨论】:

    猜你喜欢
    • 2013-07-16
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2019-12-05
    • 2014-06-04
    • 2020-06-26
    相关资源
    最近更新 更多