2010-07-13 52 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$