このコードを使用して、ファイルから文字列を読み取ります。
pbuf = infile.rdbuf();
size = pbuf->pubseekoff(0, ios::end, ios::in);
pbuf->pubseekpos (0,ios::in);
buf = new char[size];
pbuf->sgetn(buf, size);
str.assign(buf, buf+size);
char* buff
sgetnにはではなくが必要なのでchar*
、一時変数のデータを読み取る必要がありstring
ます。
したがって、この時点で、実際の質問をする前に、空白文字を含む可能性のあるファイルから文字列を読み取るためのより良い方法を誰かが知っているかどうかを教えてください(eofまでループしないでください)。
ファイルの内容は次のとおりです。
新しい行の何とか何とか
何とか何とか何とか
しかし、私が得たのは、次のとおりです。新しい行の何とか
何とか
何とか何とか何とか= </ p>
コードをいじってみると、文字を追加するにつれて、奇妙な文字の数が増えることに気づきました\n
。ファイルのサイズを取得しようとすると、各\n
文字に2バイトのスペースが必要なようですが、文字列の場合は1バイトしかかからないため、文字列が奇妙に見えます。これを回避するにはどうすればよいですか?