我必須創建一個簡單的代碼,該代碼應該創建一個.txt文件作爲輸出,其中包含一個具有此格式的符號列表。 (時間;主題;評論) 代碼具有運行使用結構功能的迴路,顯示如下:C++中的對象循環問題
struct annotation_t {
string topic;
string comment;
time_t stamp;
};
,使用戶可以輸入他想要的,直到他決定走出去的符號多次。這是我迄今爲止所做的。
#include <iostream>
#include <string>
#include <ctime>
#include <fstream>
#include <cstdlib>
#include <vector>
using namespace std;
struct annotation_t {
string topic;
string comment;
time_t stamp;
};
int main()
{
int q = 0;
std::vector<annotation_t> obj;
do
{
annotation_t temp = {};
cout<< "input your topic: ";
cin >> temp.topic ;
cout<< "input yourfeedback: ";
cin >> temp.comment ;
cout<< "input your time stamp: ";
cin >> temp.stamp ;
cout<< "exit?";
cin >> q;
obj.push_back(temp);
} while (q != 0);
ofstream myfile("annotation.txt");
char time[1000];
for(int i = 0;i<50;i++)
{
struct annotation_t obj[i];
myfile<<obj[i].stamp <<" "; // write in file
myfile<<obj[i].topic <<" ";// write in file
myfile<<obj[i].comment; // write in file
myfile<<"\n";
}
cout<<"\nFile Created with Data with name annotation.txt \n";
myfile.close();
system("Pause");
}
我在退出時遇到問題。如果我輸入任何值(即使是0),我得到一個分段錯誤,所以我不能退出循環,並保存我的文件在TXT,或重新運行,如果我想輸入更多..讓我知道你的想法。謝謝
看@Tas的答案。您可能想要在第二個循環中將變量名從i更改爲j,以避免混淆。 – k1133
請不要污損你的問題 –
Paulit這是我試圖標記爲正的一個錯誤 – FL93