2016-06-02 7 views
-2

全体の.txtファイルをchar配列にコピーしようとしています。 私のコードは動作しますが、開くファイルの最後の行だけを取得します。ここ は私のコードで、大きな感謝全体の.txtファイルをC++のchar配列にコピー

#include <fstream> 
using namespace std; 
std::ifstream fileToRead; 
unsigned char array[512]; 
fileToRead.open("test.txt"); 
if(fileToRead.is_open()){ 
    while(!fileToRead.eof()){ 
     fileToRead >> array; 
    } 
fileToRead.close(); 
} 
printf("%s\n", array); 
+0

@piyushiそれは私にはうまくいかない、ありがとう –

+0

何があなたのためには機能しないのですか? – piyushj

+0

[こちら](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong)を読んでください。 –

答えて

0

あなたは繰り返し前のコンテンツを許容するためにオフセットなしで、配列の先頭に行を読んでいます。したがって、それは常に以前の読み込み入力を上書きします。

多くのOSを使用すると、ファイルを配列のアドレス空間にマップできます。それはずっと速いでしょう。

0

あなたのたびにあなたの配列を書き換えてください。最初のステップでは、配列の最初の行を書いてから、2番目の行を配列に入れます。最終的には最後の行を配列に入れます。オペレータ>>はあなたのすべての行を連結しません。ただ書き直すだけです。 ベクトルを宣言して、 のような一言も書くことができます。std ::> allLines;

fileToRead.open("test.txt"); 
............ 
std::string temp; 
fileToRead >> temp; 
allLines.push_back(tmp);