从文件读取,并写入函数C++中的数组

Reading from a file, and writing to an array in a function C++

本文关键字:C++ 函数 数组 文件 读取      更新时间:2023-10-16

我想先说这是102 CSC课程的第一个作业。我的101老师不是最好的,所以我没有那么好的基础。

我有一个任务,要求每个动作都有自己的功能。我必须生成随机数,然后将这些数字写入文件,然后做其他一些事情。我已创建并写入文件。但是,我遇到了一个问题,无法将文件中的值读取到数组中。输出到控制台时,它们仍然为 0。我确信这是我在功能上做错了什么,但我没有问题接受任何批评。我将包含下面的代码。我现在正在使用的函数名为void read()

#include <iostream> 
#include <fstream>
#include <time.h>
#include <stdlib.h>
#include <cstddef>
using namespace std;
fstream randomData;
void randomgenerator();
void read(fstream &randomdata);
int main() {    
randomgenerator();
read(randomData);   
return 0;
}
void randomgenerator() {
srand(time(0));
randomData.open("randomData.txt");
for (int counter = 0; counter < 100; counter++) {
randomData << rand() % 100+1 << endl;
}
}
void read(fstream &randomData) {
int numarray[100] = {};
for (int i = 0; i < 100; i++) {
randomData >> numarray[i];
cout << numarray[i];
}
}

感谢您抽出宝贵时间提供意见。使用std命名空间是因为教授希望我们这样做。我知道它效率不高。

这是我的解决方案,希望这有助于将来搜索此问题。解决方案是创建另一个数据类型为 ifstream 的变量。这个变量访问了同一个文件,但允许我从中读取而不是写入它。我不得不从随机数据变量关闭文件,然后打开输入随机数据变量。以下是修订后的代码。

using namespace std;
ofstream randomData;
ifstream inputrandomData;
void randomgenerator();
void read();
int main() {
randomgenerator();
read();
return 0;
}

void randomgenerator() {
srand(time(0));
randomData.open("randomData.txt");
for (int counter = 0; counter < 100; counter++) {
randomData << rand() % 100+1 << endl;
}
randomData.close();
}

void read() {
inputrandomData.open("randomData.txt");
int numarray[100] = {};
for (int i = 0; i < 100; i++) {
inputrandomData >> numarray[i];
cout << numarray[i];
}

}

感谢您的帮助!