目录
前言
一、输入函数scanf
1.1使用scanf函数应注意的问题
1.2常用格式声明
二、输出函数printf
2.1常用格式声明
本文主要介绍,输入函数scanf和printf。
基本语法:
scanf(格式控制,地址表列)
举例说明:
int a;
char ch;
float num1;
double num2;
scanf("%d%c%f%lf",&a,&ch,&num1,&num2);//注意这里在VS系统中会报错,可更换为
//scanf("%d%c%f%lf",&a,&ch,1,&num1,&num2);在vs环境中,scanf_s函数调用时必须申明字符长度
以上,在scanf函数中,格式声明为"%d%c%f%lf",要求连着输入整数、字符、单精度浮点数、双精度浮点数。地址表列为&a,&ch,&num1,&num2表示变量a,ch,num1,num2在内存中的地址,该输入函数表示从终端输入的3个数据分别送入地址&a,&ch,&num1,&num2的存储单位,也就是赋给变量a,ch,num1,num2。
(1)scanf函数中的格式控制后面应为变量地址,而不是变量名。即&a,而非a。
(2)如果在格式控制字符中除了格式声明以外还有其他字符,则在输入数据时在对应的位置应输入与这些字符相同的字符。即如果scanf函数为:
scanf("a=%d,b=%d,c=%d",&a,&b,&c);
(3)在使用"%c"格式声明输入字符时,空格字符和转义字符中的字符都能作为有效字符输入。例如:
scanf("%c%c%c",&a,&b,&c);
在执行此函数时应该连续输入3个字符,中间不要有空格。
提示:输入数据时,在两个数值之间需要输入空格(或其他分隔符),以便系统进行区分。在连续输入字符时,在两个字符之间不要插入空格或其他分隔符,系统能够自动区分两个字符。
格式声明 | 对应数据类型 | 说明 | 示例 |
%d | int(基本整型) | 输入有符号的十进制整数 | |
%c | char(字符型) | 输入单个字符 | |
%f | float(单精度浮点型) | 输入实数,可以用小数形式或指数形式输入 | |
%lf | double(双精度浮点型) | 输入double型数据 | |
基本语法:
printf(格式控制,输出表列)
举例说明:
int a;
char ch;
float num1;
double num2;
scanf("%d%c%f%lf",&a,&ch,&num1,&num2);
printf("%d %c %.2f %.2f",a,ch,num1,num2);
以上,在printf函数中有三点与scanf函数明显不同。一,在格式控制字符中除了格式声明以外还有其他字符,这些字符会在输出时显示出来。二,%.2f与%.2lf,可理解为输出数据小数点后保留两位有效数字(实际含义有点书面化,我目前还不太理解)。三,输出表列是程序需要输出的一些数据,可以是常量、变量或表达式。
格式声明 | 对应数据类型 | 说明 | 示例 |
%d | int(基本整型) | 以带符号的十进制形式输出整数(正数不输出符号) | |
%c | char(字符型) | 以字符形式输出,只输出一个字符 | |
%f | float(单精度浮点数) double(双精度浮点数) |
以小数形式输出单、双精度数,隐含输出6位小数 | |
思考:float与double的区别?(网上答案看不太懂,等懂了再回来补充)