istream与ifstream的区别
时间: 2024-06-13 08:06:04 浏览: 228
c++输入文件流ifstream用法详解_ims的博客-CSDN博客1
`istream`和`ifstream`都是C++中的输入流类,但它们之间有一些区别。
`istream`是一个抽象类,不能直接使用,它是所有输入流类的基类,包括`ifstream`。`ifstream`是一个从文件读取数据的输入流类,它继承了`istream`类的所有成员函数,并添加了一些自己的成员函数,以便从文件中读取数据。
因此,`ifstream`是`istream`的一种特殊类型,它可以从文件中读取数据,而`istream`可以从各种输入源(如键盘、字符串等)中读取数据。
下面是一个简单的示例,演示了如何使用`istream`和`ifstream`从文件中读取数据:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
// 使用 istream 从标准输入中读取数据
int num;
cout << "Enter a number: ";
cin >> num;
cout << "You entered: " << num << endl;
// 使用 ifstream 从文件中读取数据
ifstream fin("data.txt");
string s;
while (fin >> s) {
cout << "Read from file: " << s << endl;
}
fin.close();
return 0;
}
```
阅读全文