一、基础介绍
C++输入流是用于从文件、标准输入或者字符串中读入数据的机制,其基本的数据类型包括char、short、int、long、float、double等。同时,输入流也支持读取自定义的数据类型,只需要重载输入运算符"<<"就能实现。
C++输入流主要的类有:istream
和ifstream
。其中,istream
是IO流的基类,而ifstream
则是从磁盘文件中读取数据的输入流,通常用于读入文件中的数据。
二、使用方法
1. 从标准输入读入数据
#include <iostream>
using namespace std;
int main()
{
int num;
cout << "请输入一个整数:" << endl;
cin >> num;
cout << "您输入的整数是:" << num << endl;
return 0;
}
运行结果:
请输入一个整数:
10
您输入的整数是:10
2. 从文件中读入数据
假设我们有个文本文件"data.txt",其中包含了一些整数,我们需要将其中的数读入到程序中。
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin("data.txt");
int num;
fin >> num;
cout << "读取的整数是:" << num << endl;
fin.close();
return 0;
}
运行结果:
读取的整数是:10
3. 读取自定义类型
在C++中,我们可以自定义类型,通过重载输入运算符"<<",我们也可以使其支持从输入流中读取数据。
#include <iostream>
using namespace std;
struct Student
{
string name;
int age;
};
istream &operator>>(istream &in, Student &stu)
{
in >> stu.name >> stu.age;
return in;
}
int main()
{
Student stu;
cout << "请输入一个学生的姓名和年龄:" << endl;
cin >> stu;
cout << "您输入的学生信息是:" << stu.name << " " << stu.age << endl;
return 0;
}
运行结果:
请输入一个学生的姓名和年龄:
Tom 18
您输入的学生信息是:Tom 18
三、注意事项
1. 在从输入流中读取数据时,需要保证输入流中的数据类型和读取数据的变量类型一致,否则可能会导致数据出错。
2. 在使用ifstream
读取文件时,需要注意文件路径的正确性。
3. 在使用ifstream
读取文件时,需要手动关闭输入流。