Printf:读取用户值
上一个程序很好,但如果它能从用户那里读取值 5 和 7 而不是使用常量,那会更好。请尝试这个程序:
#include <stdio.h> int main() { int a, b, c; printf("Enter the first value:"); scanf("%d", &a); printf("Enter the second value:"); scanf("%d", &b); c = a + b; printf("%d + %d = %d\n", a, b, c); return 0; }
这是您执行此程序时的工作方式:
广告
进行更改,然后编译并运行程序以确保其正常工作。请注意,scanf 使用与 printf 相同的格式字符串(键入 man scanf 以获取更多信息)。另请注意 a 和 b 前面的 &。这是 C 语言中的地址运算符:它返回变量的地址(在我们讨论指针之前,这可能没有意义)。您必须在 scanf 中对 char、int 或 float 类型的任何变量以及结构类型(我们很快会讲到)使用 & 运算符。如果您省略 & 运算符,运行程序时会出错。尝试一下,以便您可以看到那种运行时错误是什么样子。
让我们看看一些变体以完全理解 printf。这是最简单的 printf 语句:
printf("Hello");
这个 printf 调用有一个格式字符串,它告诉 printf 将单词 "Hello" 发送到标准输出。将其与以下内容进行对比:
printf("Hello\n");
两者之间的区别在于,第二个版本将单词 "Hello" 后跟一个回车符发送到标准输出。
以下行显示如何使用 printf 输出变量的值。
printf("%d", b);
%d 是一个占位符,当 printf 语句执行时,它将被变量 b 的值替换。通常,您会希望将值嵌入到其他文字中。一种实现方式如下:
printf("The temperature is "); printf("%d", b); printf(" degrees\n");
更简单的方法是这样说:
printf("The temperature is %d degrees\n", b);
您还可以在一个 printf 语句中使用多个 %d 占位符。
printf("%d + %d = %d\n", a, b, c);
在 printf 语句中,格式字符串中运算符的数量必须与后面变量的数量和类型完全对应,这一点极其重要。例如,如果格式字符串包含三个 %d 运算符,那么它后面必须紧跟三个参数,并且它们的类型和顺序必须与运算符指定的完全相同。
您可以通过使用不同的占位符,使用 printf 打印所有常见的 C 类型:
- int(整数值)使用 %d
- float(浮点值)使用 %f
- char(单字符值)使用 %c
- 字符字符串(字符数组,稍后讨论)使用 %s
您可以通过在 UNIX 机器上键入 man 3 printf 来了解更多关于 printf 的细微之处。您使用的任何其他 C 编译器可能都会附带手册或帮助文件,其中包含 printf 的描述。