第4章 程序的输入和输出
4.1 C语言输入输出 <stdio.h>
4.1.1 输出
- printf格式化输出
格式:
printf("格式串",输出列表);|格式符|含义| |---|---| |%d|十进制int整数| |%f|浮点数(默认6位小数)| |%c|单个字符| |%s|字符串| |%x/%X|十六进制| |%o|八进制|
示例:
int a=10;
float b=3.14;
char c='A';
char str[]="Hello";
printf("a=%d b=%f c=%c str=%s",a,b,c,str);
putchar(ch)输出单个字符;puts(str)输出字符串,自动换行。
4.1.2 输入
- scanf格式化输入
普通变量前面必须加
&取地址;字符数组字符串不加&。
int a; float b; char c; char s[20];
scanf("%d%f%c%s",&a,&b,&c,s);
getchar()读取一个字符;gets(字符数组)读取一行直到换行;⚠ 存在安全漏洞,新标准废弃。
4.2 C++输入输出 <iostream>
通常配合
using namespace std;
4.2.1 cout输出(插入运算符 <<)
int a=8; double b=6.78; char c='F'; string s="C++";
cout << a << " " << b << " " << c << " " << s << endl;
endl:输出并换行刷新缓冲区。
格式控制头文件 <iomanip>
setw(n)设置输出宽度,仅对下一个输出有效fixed+setprecision(n)设置浮点数保留n位小数left左对齐 /right右对齐
double num =123.45678;
cout << setw(10) << left << fixed << setprecision(3) << num;
4.2.2 cin输入(提取运算符 >>)
遇到空格、回车、tab就停止读取当前变量。
int x; float y; char z; string str;
cin >> x >> y >> z >> str;
4.2.3 读取整行(包含空格)
getline(cin, string变量)读取一整行字符串,丢弃换行符,读到换行结束。
string line;
getline(cin, line);
cin.get(ch)读取单个字符;cin.get(arr,20)读取字符数组最多19字符,末尾补\0。
注意:cin >> 和 getline混用会遗留换行符,造成读空行。