0

文字列オブジェクトのベクトルをファイルに出力しようとしています。ただし、私のコードは各文字列の最初の2つの要素のみを出力します。

以下のコードは次のように記述しています。

1
1

ファイルに。むしろその後:

2009年
7月1日2010年7月1日

それが私に必要なものです。

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

以前に同様のコンテキストで文字列オブジェクトを使用したことがあるため、何が問題になる可能性があるのか​​わかりません。

どんな助けでも大歓迎です!

4

2 に答える 2

1

すでに見たように、コードは問題ないように見えるので、次のようになります。

  • dates.outプログラムが実行された後、右側を見ていますか? 見ているファイルの日付/時刻を確認して、以前のデータではないことを確認しましたか?
  • ファイルへの書き込み権限はありますか? おそらく、プログラムが既存のデータを上書きできていない可能性があります。
  • 重要なコードをすべて見せてくれましたか? 他に知っておくべき関数呼び出しはありますか? Marcelo/ereOn の回答のコードは、質問と同じ問題を引き起こしますか?
  • 自分が思っているバイナリを実行していると確信していますか? (PATH の問題の可能性があります)。
于 2010-07-13T15:38:23.920 に答える
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$ 
于 2010-07-13T15:02:25.653 に答える