Skip to main content

第4章 程序的输入和输出

4.1 C语言输入输出 <stdio.h>

4.1.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);
  1. putchar(ch)输出单个字符;
  2. puts(str)输出字符串,自动换行

4.1.2 输入

  1. scanf格式化输入

普通变量前面必须加&取地址;字符数组字符串不加&

int a; float b; char c; char s[20];
scanf("%d%f%c%s",&a,&b,&c,s);
  1. getchar()读取一个字符
  2. 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 读取整行(包含空格)

  1. getline(cin, string变量)读取一整行字符串,丢弃换行符,读到换行结束。
string line;
getline(cin, line);
  1. cin.get(ch)读取单个字符;cin.get(arr,20)读取字符数组最多19字符,末尾补\0

注意:cin >> 和 getline混用会遗留换行符,造成读空行。