在 C 语言中,printf和scanf函数是非常重要的输入输出函数。它们可以让我们与程序进行交互,并以各种格式显示和读取数据。
一、printf 函数
printf函数用于将数据输出到标准输出设备(通常是控制台)。它的基本语法如下:
printf("格式化字符串", 表达式列表);
其中,“格式化字符串” 是一个字符串,其中包含了普通字符和格式说明符。格式说明符用于指定输出数据的格式。表达式列表是要输出的数据,可以是变量、常量或表达式。
1. 常见的格式说明符
%d:用于输出十进制整数。例如:
展开过程
输出结果为:The number is 10。
%f:用于输出浮点数。默认情况下,%f会输出小数点后 6 位数字。例如:
展开过程
输出结果为:The float number is 3.140000。
可以使用.n的形式来指定输出的小数位数,其中n是要输出的小数位数。例如:
展开过程
输出结果为:The float number is 3.14。
%c:用于输出单个字符。例如:
展开过程
输出结果为:The character is A。
%s:用于输出字符串。例如:
展开过程
输出结果为:The string is Hello, world!。
2. 其他格式说明符
%o:用于输出八进制整数。%x或%X:用于输出十六进制整数。小写x输出小写字母,大写X输出大写字母。%u:用于输出无符号整数。%p:用于输出指针的值。
3. 转义序列
在格式化字符串中,还可以使用转义序列来输出特殊字符。例如:
\n:换行符。\t:制表符。\\:输出反斜杠。\":输出双引号。
例如:
展开过程
二、scanf 函数
scanf函数用于从标准输入设备(通常是键盘)读取数据,并将其存储到变量中。它的基本语法如下:
展开过程
其中,“格式化字符串” 是一个字符串,其中包含了普通字符和格式说明符。格式说明符用于指定输入数据的格式。变量地址列表是要存储输入数据的变量的地址,可以使用&运算符来获取变量的地址。
1. 常见的格式说明符
与printf函数类似,scanf函数也支持各种格式说明符。例如:
%d:用于读取十进制整数。例如:
展开过程
用户输入一个整数后,scanf函数会将其存储到num变量中。
%f:用于读取浮点数。例如:
展开过程
%c:用于读取单个字符。例如:
展开过程
需要注意的是,当使用%c读取字符时,输入缓冲区中的任何字符都会被读取,包括空格、制表符和换行符。
%s:用于读取字符串。例如:
展开过程
scanf函数在读取字符串时,会自动忽略开头的空白字符,并在遇到空白字符时停止读取。如果要读取包含空格的字符串,可以使用gets函数或fgets函数。
2. 输入格式控制
在使用scanf函数时,可以使用一些格式控制字符来控制输入的格式。例如:
*:用于跳过输入中的某些数据。例如:
展开过程
如果用户输入 “1 2 3”,则num1的值为 1,num2的值为 3,中间的数字 2 被跳过。
width:用于指定读取的最大宽度。例如:
展开过程
如果用户输入 “Hello, world!”,则str数组中只会存储 “Hello”,后面的字符被忽略。
3. 错误处理
在使用scanf函数时,需要注意错误处理。如果输入的数据与格式说明符不匹配,scanf函数可能会返回错误值,并将输入缓冲区中的数据留在缓冲区中,导致后续的输入操作出现问题。
为了避免这种情况,可以在调用scanf函数后检查其返回值。如果scanf函数返回的值不等于期望读取的变量个数,则表示输入出现了错误。例如:
展开过程
三、总结
printf和scanf函数是 C 语言中非常重要的输入输出函数。通过使用不同的格式说明符和转义序列,可以以各种格式输出和读取数据。在使用这些函数时,需要注意格式说明符的正确使用和错误处理,以确保程序的正确性和稳定性。
2万+

被折叠的 条评论
为什么被折叠?



