[英]how to store struct in a text file in c++
我想将 struct 的元素存储到文本文件中。 我有多个输入,这就是我所做的,但是,我只能存储最新的输入而不是所有的输入。 在此先感谢您的帮助! 这是我的代码:
#include <iostream>
#include <fstream>
using namespace std;
struct ProcessRecords {
string ID;
int arrival;
int wait;
int burst;
void putToFile() {
ofstream input;
input.open ("process.txt");
input << ID << "\t" << arrival << "\t" << wait << "\t" << burst << endl;
input.close();
}
};
int main() {
int numProcess;
int algo;
cout << "\n\t\t=== CPU SCHEDULING ALGORITHMS ===\n";
cout << "\n\t\tEnter number of processes: ";
cin >> numProcess;
ProcessRecords process[numProcess];
string processID[numProcess];
int arrTime[numProcess];
int waitTime[numProcess];
int burstTime[numProcess];
cout << endl << endl;
for (int i = 0; i < numProcess; i++) {
cout << "\n\tEnter process ID for Process " << i+1 << ":\t ";
cin >> processID[i];
process[i].ID = processID[i];
cout << "\n\t\tEnter arrival time for " << processID[i] << ":\t ";
cin >> arrTime[i];
process[i].arrival = arrTime[i];
cout << "\n\t\tEnter waiting time for " << processID[i] << ":\t ";
cin >> waitTime[i];
process[i].wait = waitTime[i];
cout << "\n\t\tEnter burst time for " << processID[i] << ":\t ";
cin >> burstTime[i];
process[i].burst = burstTime[i];
process[i].putToFile();
}
return 0;
}
首先在 C++ 中(C++ 我指的是标准 C++ 而不是扩展),数组的大小必须是编译时常量。 所以你不能写这样的代码:
int n = 10;
int arr[n]; //incorrect
正确的写法是:
const int n = 10;
int arr[n]; //correct
出于同样的原因,以下语句在您的代码中不正确:
int arrTime[numProcess]; //incorrect because size of array must be fixed and decide at compile time
其次,您应该附加到文本文件而不是覆盖它。 要以追加模式打开文件,您可以使用:
input.open("process.txt", ofstream::app);
您可以使用input.open("process.txt", ofstream::app);
在此处检查程序是否按您的意愿工作(追加input.open("process.txt", ofstream::app);
. 还要注意我所说的数组大小是编译时间常数。 我没有在我提供的链接中更改它。 您可以将std::vector
用于可变大小的容器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.