C++ 输入输出方式小结

C++ 输入输出方式小结

在 C++ 编程中,输入和输出是基本操作。本文将输入和输出分开,详细说明常见的输入输出方式,包括它们的功能、支持的内容类型、具体用法和返回值含义。

ACM竞赛之输入输出(以C与C++为例) - Aloys_Code - 博客园 (cnblogs.com)

一、输入方式

1. cin >>

功能

  • 用于从标准输入(通常是键盘)读取数据。
  • 会自动跳过空格、回车和 Tab 等不可见字符。
  • 适合读取整数、浮点数、字符和字符串。

支持的内容

  • 整数(intlong 等)
  • 浮点数(floatdouble
  • 单个字符(char
  • 字符串(string

用法

int a;
cin >> a;  // 读取整数

返回值

  • cin >> 返回 istream&,可用于判断输入是否成功。
if (cin >> a) {
    // 输入成功
} else {
    // 输入失败,例如输入了非法字符
}

2. cin.get()

功能

  • 读取单个字符,不跳过空格、回车和 Tab 等特殊字符。
  • 适合处理逐字符输入。

支持的内容

  • 单个字符(char

用法

char c;
cin.get(c);  // 读取单个字符,包括空格和换行
  • 读取指定数量的字符到字符数组:
char str[10];
cin.get(str, 10);  // 读取最多9个字符,最后一个字符是 '\0'

返回值

  • 返回 istream&,可以用于检查输入是否成功。
if (cin.get(c)) {
    // 成功读取字符
} else {
    // 读取失败
}

3. cin.getline()

功能

  • 读取一行字符到字符数组中,包括空格,直到遇到换行符或达到最大字符数。

支持的内容

  • 字符串(字符数组 char[]

用法

char str[50];
cin.getline(str, 50);  // 读取一行最多 49 个字符,最后一个字符是 '\0'

返回值

  • 返回 istream&,用于判断输入是否成功。

4. getline()

功能

  • 读取整行输入,支持 string 类型,并包括空格和换行。

支持的内容

  • 字符串(string

用法

string str;
getline(cin, str);  // 读取一整行,存入 string 变量

返回值

  • 返回 istream&,可以用于判断输入是否成功。

5. scanf()

功能

  • 来自 C 语言的函数,按指定的格式从标准输入读取数据。
  • 不跳过换行符,但会跳过空格和 Tab。

支持的内容

  • 整数(intlong 等)
  • 浮点数(floatdouble
  • 单个字符(char
  • 字符串(char[]

用法

int a;
scanf("%d", &a);  // 读取整数并存入变量 a
  • 格式化符号说明:
    • %d:读取 int 整数
    • %ld:读取 long 整数
    • %f:读取 float 浮点数
    • %lf:读取 double 浮点数
    • %c:读取单个字符
    • %s:读取字符串

返回值

  • 返回成功读取的输入项数量,如果输入匹配失败,返回值会小于预期的数量。
int a, b;
int result = scanf("%d %d", &a, &b);
if (result == 2) {
    // 成功读取两个整数
} else {
    // 输入失败或不足两个整数
}

6. getchar()

功能

  • 逐字符从输入缓冲区读取单个字符。
  • 输入结束符为回车。

支持的内容

  • 单个字符(char

用法

char c;
c = getchar();  // 读取一个字符

返回值

  • 返回读取的字符,遇到 EOF(End Of File)时返回 -1
while ((c = getchar()) != EOF) {
    // 逐个字符处理
}

二、输出方式

1. cout

功能

  • 标准的 C++ 输出流,输出内容到控制台。

支持的内容

  • 整数、浮点数、字符、字符串等。

用法

int a = 10;
cout << "The value of a is " << a << endl;

返回值

  • cout 返回 ostream&,可以用于链式输出操作。

2. printf()

功能

  • 来自 C 语言的标准输出函数,用于格式化输出。

支持的内容

  • 整数、浮点数、字符、字符串等。

用法

int a = 10;
printf("The value of a is %d\n", a);
  • 格式化符号说明:
    • %d:输出 int 整数
    • %ld:输出 long 整数
    • %f:输出 float 浮点数
    • %lf:输出 double 浮点数
    • %c:输出单个字符
    • %s:输出字符串

返回值

  • printf() 返回成功输出的字符数量。
int result = printf("Hello, world!\n");
if (result >= 0) {
    // 输出成功,result 是输出的字符数量
}

3. putchar()

功能

  • 向标准输出写入单个字符。

支持的内容

  • 单个字符(char

用法

putchar('A');  // 输出字符 'A'

返回值

  • 返回输出的字符,失败时返回 EOF
int result = putchar('A');
if (result != EOF) {
    // 输出成功
}

总结

输入方式总结

输入方式支持的内容用法示例返回值
cin >>整数、浮点数、字符、字符串cin >> a;istream&,判断输入成功
cin.get()单个字符、字符数组cin.get(c);istream&,判断输入成功
cin.getline()字符数组(带 ‘\0’ 结尾)cin.getline(str, 20);istream&,判断输入成功
getline()string 字符串getline(cin, str);istream&,判断输入成功
scanf()格式化读取整数、浮点数、字符、字符串scanf("%d", &a);读取的输入项数量
getchar()单个字符char c = getchar();读取的字符,EOF 返回 -1

输出方式总结

输出方式支持的内容用法示例返回值
cout整数、浮点数、字符、字符串cout << a;ostream&,链式输出
printf()格式化输出整数、浮点数、字符、字符串printf("%d", a);输出的字符数量
putchar()单个字符putchar('A');输出的字符,失败返回 EOF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值