将字符串对象的向量输出到文件

时间:2010-07-13 14:55:24

标签: c++ string vector ofstream

我正在尝试将字符串对象的向量输出到文件中。但是,我的代码只 输出每个字符串的前两个元素。

下面的代码写道:

  

1
  1

到一个文件。而不是:

  

01-JUL-09
  01-JUL-10

这就是我需要的。

ofstream file("dates.out");  

vector<string> Test(2); 

Test[0] = "01-Jul-09"; 
Test[1] = "01-Jul-10"; 

for(unsigned int i=0; i<Test.size(); i++)    
     file << Test[i] << endl;

file.close();

我不清楚因为我使用了字符串对象会出现什么问题 之前在类似的情况下。

欢迎任何帮助!

2 个答案:

答案 0 :(得分:1)

如前所述,代码看起来很好,所以:

  • 在程序运行后,您是否正在查看正确的dates.out?您是否验证了所查找文件的日期/时间,以确保它不是以前的数据?
  • 您是否有权写入该文件?也许您的程序无法覆盖现有数据。
  • 你有没有告诉我们所有重要的代码?我们还需要了解其他任何函数调用吗? Marcelo / ereOn的答案中的代码是否会产生与您的问题相同的问题?
  • 你确定你正在运行你认为的二进制文件吗? (可能是PATH问题)。

答案 1 :(得分:0)

以下代码按预期工作:

marcelo@macbookpro-1:~/play$ cat dateout.cc
#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;

int main()
{
  ofstream file("dates.out");

  vector<string> Test(2);

  Test[0] = "01-Jul-09";
  Test[1] = "01-Jul-10";

  for(unsigned int i=0; i<Test.size(); i++)
    file << Test[i] << endl;
  file.close();
}
marcelo@macbookpro-1:~/play$ make dateout && ./dateout
g++     dateout.cc   -o dateout
marcelo@macbookpro-1:~/play$ cat dates.out 
01-Jul-09
01-Jul-10
marcelo@macbookpro-1:~/play$