这当前读取.txt文件并对内容进行排序。我试图让它将矢量的那些排序内容写入文件。目前它只写一行,我怎么能把它放在新文件中的所有行?非常感谢。 -Kaiya
x(cond1) = (beta + 1 - v(cond6))/rho;
答案 0 :(得分:4)
ofstream newfile ("newfile.txt");
for (string &s : fileLines)
{
cout << s << " ";
newfile << s << " ";
};
答案 1 :(得分:2)
默认情况下,为每个循环迭代创建newfile
会覆盖文件的内容。
在最后一个循环之前打开newfile
,或在循环中以追加模式打开它。
答案 2 :(得分:1)
这是因为你在循环的每次迭代中都在创建一个新文件! ofstream newfile(&#34; newfile.txt&#34;); 应该在循环之前写出来。
ofstream newfile ("newfile.txt");
for (string &s : fileLines)
{
cout << s << " ";
newfile << s << " ";
};
答案 3 :(得分:1)
ofstream newfile ("newfile.txt");
copy(fileLines.begin(), fileLines.end(), ostream_iterator<string>(newfile, " ") );
答案 4 :(得分:0)
这是我的完整代码,感谢Xiaotian Pei的帮助。
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <fstream>
using namespace std;
inline void keep_window_open() {char ch; cin>>ch;}
int main()
{
string line;
ifstream myfile("weblog.txt");
vector<string> fileLines;
if (!myfile) //test the file
{
cout << "Unable to open the file" << endl;
return 0;
}
while (getline(myfile, line))
{
fileLines.push_back(line);
}
sort(fileLines.begin(), fileLines.end()); //sorting string vector
ofstream newfile ("newfile.txt"); //write to new file
for (string &s : fileLines)
{
cout << s << " ";
newfile << s << " ";
}
return 0;
}