用C++学习文件流类,定义一个有十个元素的整型数组,从键盘输入十个整数,将它们放入数组,同时用插入运算符将它们写入当前目录下的f1.txt文件;从f1.txt文件中读取10个整数放入数组中,找出并输出最大数和它的下标值。
时间: 2024-03-05 21:49:52 浏览: 52
好的,我来给你讲一下使用文件流类的方法。
首先,我们需要包含头文件`<fstream>`,它包含了文件流类的定义。然后,我们可以使用ofstream类来创建一个输出文件流对象,使用ifstream类来创建一个输入文件流对象。例如:
```cpp
#include <fstream>
ofstream fout("f1.txt"); // 创建输出文件流对象
ifstream fin("f1.txt"); // 创建输入文件流对象
```
在这个例子中,我们创建了一个名为f1.txt的文件,并且用fout对象将数据写入该文件,用fin对象从该文件中读取数据。
接下来,我们可以定义一个有十个元素的整型数组,从键盘输入十个整数并将它们放入数组中。然后,我们可以使用插入运算符将它们写入f1.txt文件。例如:
```cpp
int arr[10];
for (int i = 0; i < 10; i++) {
cin >> arr[i];
fout << arr[i] << " ";
}
```
在这个例子中,我们循环读入十个整数,并将它们一个一个写入f1.txt文件中,中间用空格隔开。
最后,我们可以从f1.txt文件中读取十个整数放入数组中,并找出最大数和它的下标值。例如:
```cpp
int maxIndex = 0, maxValue = arr[0];
for (int i = 1; i < 10; i++) {
fin >> arr[i];
if (arr[i] > maxValue) {
maxValue = arr[i];
maxIndex = i;
}
}
cout << "The max value is " << maxValue << " and its index is " << maxIndex << endl;
```
在这个例子中,我们循环从f1.txt文件中读取十个整数,并找出它们中的最大值和对应的下标。
最后,我们需要关闭文件流对象,释放资源。例如:
```cpp
fout.close(); // 关闭输出文件流对象
fin.close(); // 关闭输入文件流对象
```
完整代码如下:
```cpp
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream fout("f1.txt"); // 创建输出文件流对象
ifstream fin("f1.txt"); // 创建输入文件流对象
int arr[10];
for (int i = 0; i < 10; i++) {
cin >> arr[i];
fout << arr[i] << " ";
}
fout.close(); // 关闭输出文件流对象
int maxIndex = 0, maxValue = arr[0];
for (int i = 1; i < 10; i++) {
fin >> arr[i];
if (arr[i] > maxValue) {
maxValue = arr[i];
maxIndex = i;
}
}
fin.close(); // 关闭输入文件流对象
cout << "The max value is " << maxValue << " and its index is " << maxIndex << endl;
return 0;
}
```
注意,这个程序需要在有写入权限的目录下运行,否则会出现文件打开失败的情况。
阅读全文