主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
C++

C++ 基础

C++ 主页
C++ 概述
C++ 环境
C++ 基本语法
C++ 注释
C++ 数据类型
C++ Hello, World
C++ 省略命名空间
C++ 数值类型
C++ 字符类型
C++ 布尔类型
C++ 变量
C++ 作用域
C++ 多个变量
C++ 输入输出基础
C++ 常量/文字
C++ 修饰符类型
C++ 存储类别
C++ 操作符
C++ 决策结构
C++ 循环结构
C++ foreach 循环
C++ 数字
C++ 数组
C++ 指针
C++ 枚举类型
C++ 引用变量
C++ 日期与时间
C++ 结构体
C++ 联合类型

C++ 字符串

C++ 字符串
C++ 字符串长度
C++ 字符串连接

C++ 函数

C++ 函数
C++ 多参数函数
C++ 递归
C++ return 语句
C++ 函数重载
C++ 函数重写

C++ 面向对象

C++ 面向对象
C++ 类和对象
C++ 多重继承
C++ 多层次继承
C++ 继承
C++ 重载
C++ 多态性
C++ 抽象
C++ 封装
C++ 接口

C++ 高级

C++ 文件和流
C++ 异常处理
C++ 动态内存
C++ 命名空间
C++ 模板
C++ 预处理器
C++ 信号量
C++ 多线程
C++ Web 编程
C++ 高级概念

基础

C++ 主页
C++ 概述
C++ 环境
C++ 基本语法
C++ 注释
C++ 数据类型
C++ Hello, World
C++ 省略命名空间
C++ 数值类型
C++ 字符类型
C++ 布尔类型
C++ 变量
C++ 作用域
C++ 多个变量
C++ 输入输出基础
C++ 常量/文字
C++ 修饰符类型
C++ 存储类别
C++ 操作符
C++ 决策结构
C++ 循环结构
C++ foreach 循环
C++ 数字
C++ 数组
C++ 指针
C++ 枚举类型
C++ 引用变量
C++ 日期与时间
C++ 结构体
C++ 联合类型

字符串

C++ 字符串
C++ 字符串长度
C++ 字符串连接

函数

C++ 函数
C++ 多参数函数
C++ 递归
C++ return 语句
C++ 函数重载
C++ 函数重写

面向对象

C++ 面向对象
C++ 类和对象
C++ 多重继承
C++ 多层次继承
C++ 继承
C++ 重载
C++ 多态性
C++ 抽象
C++ 封装
C++ 接口

高级

C++ 文件和流
C++ 异常处理
C++ 动态内存
C++ 命名空间
C++ 模板
C++ 预处理器
C++ 信号量
C++ 多线程
C++ Web 编程
C++ 高级概念

C++ 输入输出基础


上一章 下一章

C++ 标准库提供了一套广泛的输入/输出功能,本章将讨论C++编程中最基本且最常见的输入/输出操作。

C++ 输入/输出发生在流中,即字节序列。如果字节从像键盘、磁盘驱动器或网络连接等设备流向主存,则称为输入操作;如果字节从主存流向显示屏幕、打印机、磁盘驱动器或网络连接等设备,则称为输出操作。

输入/输出库头文件

序号 头文件 功能与描述
1 <iostream> 定义了标准输入流 cin、标准输出流 cout、非缓冲的标准错误流 cerr 和缓冲的标准错误流 clog。
2 <iomanip> 声明了用于格式化输入/输出的服务,如 setw 和 setprecision 等参数化的流操作符。
3 <fstream> 声明了用于用户控制文件处理的服务。我们在文件和流相关的章节中会详细讨论。
4 <bits/stdc++.h> 包括了大多数标准C++库,添加了大量的功能而无需单独指定每个库。这对于编码比赛特别有用。

标准输出流 cout

预定义对象 cout 是 ostream 类的一个实例。cout 被认为是连接到标准输出设备,通常是显示屏。cout 与插入操作符 << 一起使用,如下例所示。

示例

#include <iostream>
 
using namespace std;
 
int main() {
   char str[] = "Hello C++";
 
   cout << "Value of str is : " << str << endl;
}

当上述代码被编译和执行时,它产生以下结果:

Value of str is : Hello C++

C++ 编译器还会确定要输出的变量的数据类型,并选择适当的插入操作符来显示值。插入操作符 << 可以在一个语句中使用多次,如上例所示,endl 用于行末添加换行符。

标准输入流 cin

预定义对象 cin 是 istream 类的一个实例。cin 被认为是连接到标准输入设备,通常是键盘。cin 与提取操作符 >> 一起使用,如下例所示。

示例

#include <iostream>
 
using namespace std;
 
int main() {
   char name[50];
 
   cout << "Please enter your name: ";
   cin >> name;
   cout << "Your name is: " << name << endl;
}

当上述代码被编译和执行时,它会提示你输入一个名字。你输入一个值然后按回车键,会看到以下结果:

Please enter your name: cplusplus
Your name is: cplusplus

提取操作符 >> 可以在一个语句中使用多次。请求多个数据项可以使用以下方式:

cin >> name >> age;

这相当于以下两个语句:

cin >> name;
cin >> age;

标准错误流 cerr

预定义对象 cerr 是 ostream 类的一个实例。cerr 被认为是连接到标准错误设备,也是显示屏,但 cerr 是非缓冲的,每次对 cerr 的插入都会立即显示出来。

示例

#include <iostream>
 
using namespace std;
 
int main() {
   char str[] = "Unable to read....";
 
   cerr << "Error message : " << str << endl;
}

当上述代码被编译和执行时,它产生以下结果:

Error message : Unable to read....

标准日志流 clog

预定义对象 clog 是 ostream 类的一个实例。clog 被认为是连接到标准错误设备,也是显示屏,但 clog 是缓冲的,这意味着每次插入 clog 都可能导致其输出被保留在缓冲区直到缓冲区填满或者缓冲区被刷新。

示例

#include <iostream>
 
using namespace std;
 
int main() {
   char str[] = "Unable to read....";
 
   clog << "Error message : " << str << endl;
}

当上述代码被编译和执行时,它产生以下结果:

Error message : Unable to read....

虽然这些小例子中你看不到 cout、cerr 和 clog 的区别,但是在编写和执行大型程序时这种区别就变得明显了。因此,显示错误信息时使用 cerr 流,而在显示其他日志消息时则应该使用 clog。

使用 <bits/stdc++.h> 进行输入/输出

<bits/stdc++.h> 是一个非标准的头文件,在C++中,因为它不属于官方的C++标准库。相反,它是GCC特有的头文件,包含了大部分C++标准库。你也可以使用 <bits/stdc++.h> 进行输入和输出而无需使用另一个库。

示例

#include <bits/stdc++.h>
using namespace std;
int main() {
  int number;
  string name;

  cout << "Welcome to TutorialsPoint!" << endl;

  cout << "Please enter your name: ";
  cin >> name;
  cout << "Please enter a number: ";
  cin >> number;
  cout << "Hello," << name << " You entered " << number << endl;

  vector<int> numbers;
  cout << "Enter 4 numbers: ";

  for (int i = 0; i < 4; ++i) {
    int temp;
    cin >> temp;
    numbers.push_back(temp);
  }
  cout << "You entered the following numbers: ";
  for (int num : numbers) {
    cout << num << " ";
  }
  cout << endl;

  sort(numbers.begin(), numbers.end());
  cout << "Sorted numbers: ";
  for (int num : numbers) {
    cout << num << " ";
  }
  cout << endl;

  return 0;
}

当上述代码被编译和执行时,它产生以下结果:

Welcome to TutorialsPoint!
Please enter your name: Aman
Please enter a number: 2006
Hello, Aman You 2006
Enter 4 numbers: 2
0
0
6
You entered the following numbers: 2 0 0 6
Sorted numbers: 0 0 2 6

因此,在这里,代替使用多个头文件如 <iostream>、<string>、<vector>、<algorithm>,我们仅仅使用 <bits/stdc++.h>,因为它包含了所有必要的标准库来进行输入/输出操作、字符串处理、动态数组和算法,简化了你的代码并使其更整洁、更方便。它尤其适用于竞赛编程。

上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图