我正在编写一个C ++代码,我在其中动态创建了一个字符串数组。我编写了函数来输出字符串数组中的项目数以及数组本身。我想要做的下一件事是将数组的元素存储在文本文件中,但是当我打开我写入的文件时,只显示数组的最后一个元素。以下是我正在做的事情的样本:
int num_elem = ReadNumElem(); // my function that gets the number of elements in the array of strings
string *MyStringArray = ReadNames(num_elem); // my function that reads a file and outputs the necessary strings into the array
for(int i = 0; i < num_elem < ++i) {
ofstream ofs("C:\\Test\\MyStrings.txt")
ofs << MyStringArray[i] << endl; // I also tried replacing endl with a "\n"
}
我是C ++的新手,所以我很抱歉,如果这太简单了,但我现在已经找了一段时间,我似乎无法找到解决方案。前两个函数不相关,我只需要知道如何将数据输出到文本文件中,以便显示所有数据,而不仅仅是数组中的最后一个元素。谢谢!
答案 0 :(得分:3)
每次在数组中打开文件并覆盖其内容。
尝试:
ofstream ofs("C:\\Test\\MyStrings.txt");
for(int i = 0; i < num_elem < ++i) {
ofs << MyStringArray[i] << endl; // I also tried replacing endl with a "\n"
}
ofs.close();
答案 1 :(得分:1)
您需要在循环之外声明文件
修改
对不起,我不打算在一行中回答,但现在已经完成了。