Printf:读取用户输入

前面的程序很好,但要是如果能从用户那里读入值5和7而不是使用固定的值的话,那就更好了。可以改为下面的程序:

#include int main()
{int a, b, c;printf("输入第一个值:");scanf("%d",printf("输入第二个值:");
scanf("%d", c = a + b;printf("%d + %d = %d\n", a, b, c);return 0;}

以下是程序的执行过程:

c语言获取system输出 c语言获取用户输入_c语言用户输入编程

HSW

C语言执行程序示例

请按照上例修改原来的程序,然后重新编译和执行并确保它能正常工作。注意scanf和printf都要使用格式字符串(可以键入man scanf获取更多信息)。还要注意a和b前面都有一个“&”。这是C语言中的取地址运算符,它会返回变数的地址(在我们讨论指针之前,这个符号没什么用)。在对单个字符,整数,或者浮点数形式的任何变量做标准输入,以及对结构形式(我们很快就会接触到)的任何变量做标准输入时,您都必须使用&运算符。如果您遗漏了&运算符,您在运行程序时会报错。您可以试试,这样就能看到这种运行错误是什么样子。

让我们通过一些变量来完全理解printf。这是最简单的printf声明:

printf("您好");
它的格式字符串告诉printf把“您好”二字发送到标准输出。对比:
printf("您好\n");
两者的区别是后者在“您好”后跟一个回车换行,一起送到标准输出。
下面这行显示了如何使用printf输出一个变量的值。
printf("%d", b)
%d是占位符,会在printf语句执行时替换为变量b的值。通常您需要把输出值嵌入到一些文字之中。一种方法是这样:
printf("温度是");
printf("%d", b);
printf(" 度\n");
更简单的方法是这样写:
printf("温度是 %d 度\n", b);
一个printf语句中可以使用多个%d占位符:
printf("%d + %d = %d\n", a, b, c);

在printf语句中,格式字符串包含的操作符数目和后面的变量的数目和类型一定要一致,这一点极为重要。例如,如果格式字符串包含有三个%d操作符,那么格式字符串后面必须紧接正好三个参数,且参数的类型和先后顺序必须和操作符指定的是一样的。

使用不同形式的占位符,printf可以打印所有的C标准类型:

int(整数)用%d

float(浮点数)用%f

char(单个字符)用%c

字符串(字符数组,见后面讨论)用%s

在UNIX机器上要了解printf的更多细节,可以键入man 3 printf。如果使用任何其他C编译器,则您很可能在其附带手册或帮助文件中找到对printf的说明。