我想將 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;
}
這是我的示例輸出:

uj5u.com熱心網友回復:
首先在 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);. 還要注意我所說的陣列大小是編譯時間常數。我沒有在我提供的鏈接中更改它。您可以std::vector用于可變大小的容器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/328480.html
上一篇:在C 中通過指標訪問映射元素
