c++ - 从文件中读取,并在函数 C++ 中写入数组
问题描述
我想先说这是 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 的变量。这个变量访问了同一个文件,但允许我读取它而不是写入它。我不得不从 randomData 变量中关闭文件,然后打开 inputrandomData 变量。下面是修改后的代码。
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];
}
}
谢谢各位帮忙!
推荐阅读
- mysql - 如何使用mysql语句查找每列中不同值的数量
- c++ - 在非英语 Windows 安装上识别 PST 时区
- blockchain - IPFS 是否像区块链网络一样使用链表系统?
- r - 每个类别的年度总和
- r - 从函数调用时,有没有办法使 match.call + eval 组合起作用?
- python - 如何在 RTSP 上发送 MJPEG 帧
- java - 通过将值与数组中的现有键相加来构造一个 HashMap 而不覆盖键
- android - 如何在导航视图中以编程方式在 Android 中使用 layout_gravity="start" 或 layout_gravity="LEFT"
- angular - ForkJoin 无法从多个表单 valueChanges 中侦听多个 observables
- r - 为什么 coord_proj 和 ggplot2 会给我这个错误?