将vector的内容写入文件c ++

cae*_*sar 2 c++ file-io

我试图将我的矢量内容写入文件.为此,我写了一段代码,如:

int main()
{
    ofstream outputfile("test.txt");
    vector<int>temp;
    temp.push_back(1);
    temp.push_back(2);
    temp.push_back(3);
    for(int i=0;i<temp.size();i++)
        outputfile<<temp[i]<<"\n";
}
Run Code Online (Sandbox Code Playgroud)

当我写这篇文章时,我可以轻松地做我想要的.文件内容是:

1 2 3

但是,当我想从反向编写我的矢量文件时(如下所示).我什么都没得到.只是空文件.有没有人帮我?提前致谢.

for(int i=temp.size()-1;i>=0;i--)
    outputfile<<temp[i]<<"\n";
Run Code Online (Sandbox Code Playgroud)

dee*_*iip 8

你可以用

std::copy(temp.rbegin(), temp.rend(),
          std::ostream_iterator<int>(outputfile, "\n"));
Run Code Online (Sandbox Code Playgroud)

这段代码:

for(int i=temp.size()-1;i>=0;i--)
    outputfile<<temp[i]<<"\n";
Run Code Online (Sandbox Code Playgroud)

用vs12在我的窗户上正常工作.

  • @BenjaminLindley一旦你习惯了,是的(至少我这样做).因为您不需要查看并确保循环执行它似乎做的事情. (3认同)

Zac*_*and 5

您可以在1行中完成所有操作:

std::copy(temp.rbegin(), temp.rend(), std::ostream_iterator<int>(outputFile, "\n"));
Run Code Online (Sandbox Code Playgroud)

  • @caesar仅此而已。大部分时间可能是1)IO本身,然后2)转换为文本。对于其余部分,副本将执行您在循环中所做的几乎所有工作。 (3认同)