2010-07-13 66 views
0

我想输出字符串对象的矢量到文件。但是,我的代码只有 输出每个字符串的前两个元素。将字符串对象的矢量输出到文件

下面的代码段中写道:

到文件中。而不是:

01 - 09年7月
01 - 10年7月

这正是我需要的。

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(); 

是我不明白什么可以去错了,因为我已经使用字符串类似背景前的对象 。

任何帮助将受到欢迎!

+1

这是您的确切代码?这段代码不应该产生你所说的你看到的输出。 – 2010-07-13 14:59:31

+3

适用于我,无需修改。你可以发布一个完整的迷你程序('#include's和all)来展示问题吗? – 2010-07-13 15:00:12

+1

代码对我来说看起来不错,你做了正确的'#include'之类的吗? – Jordan 2010-07-13 15:00:17

回答

1

正如上文所述,该代码会出现罚款,所以:

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

我想出了什么问题: 代码没问题。这个问题是由于另一个应用程序(Matlab)使用了dates.out文件,并且预期格式不同。 感谢您的帮助! – Wawel100 2010-07-13 15:43:12

+0

相关的问题是,我输出的字符串如下: file <<“Some Text [^ \ n]”<< endl; 现在\ n导致文件中的新线,是不是 我想要的东西 - 最好我只是想: 某些文本[\ N] 我如何得到C++对待\ n的只是一部分字符串? – Wawel100 2010-07-13 16:02:34

+1

'\\ n'会将文字'\ n'放入文件中。 – 2010-07-13 16:15:30

0

下面的代码按预期工作:

[email protected]:~/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(); 
} 
[email protected]:~/play$ make dateout && ./dateout 
g++  dateout.cc -o dateout 
[email protected]:~/play$ cat dates.out 
01-Jul-09 
01-Jul-10 
[email protected]:~/play$