2016-09-10 9 views
0

ファイルに数値を出力しようとしています。私は順列を計算しようとしているので、私は、結果はこのように見えることを期待ファイルに出力が間違っています。

std::ofstream out; 
out.open("%path%/perm.out"); 
if (Pos == N) 
{ 
    for (i = 0; i < N; i++) 
     out << a[i] << " "; 
    out << "\n"; 
    return; 
} 

:ここではどのようだ

1 2 3 
1 3 2 
2 1 3 
2 3 1 
3 1 2 
3 2 1 

しかし、私が取得することはこれです:

3 2 1 

しかし、これをstd :: coutを使ってコンソールに出力しようとすると、期待した結果が得られます。なぜこれが起こり、これをどうやって修正するのですか?

+0

もっとコードを表示することはできますか?問題は、このセクションだけでは明白には見えません。 –

+0

@ benson-lin私は確かに、しかし私は何を投稿するのか分からない!コードには他の出力はありません。順列とメインを計算するアルゴリズムの残りの部分だけ。 – wubwubnoobnoob

+1

[最小限の、完全で検証可能な例](http://stackoverflow.com/help/mcve)の作成を試みてください。また、[良い質問をする方法について読む](http://stackoverflow.com/help/how-to-ask)をご覧ください。 –

答えて

3

ファイルを追加モードで開く必要があります。

std::ofstream myfile; 
myfile.open ("example.txt", ios::app); 
0

問題が明確ではないため、表示されたコードは関数内にあると考えられます。
問題は、同じファイルを何度も何度も上書きしている可能性があります。最後には、最後の行だけを残しているだけです。

3 2 1 

問題の内容を理解できるように、コードを追加してください。

関連する問題