を読み取る際に、文字列のbegginingに改行を追加:C++私は2つの質問を持っているファイル
1)なぜ私のコードはselected_line列のbegginingに改行を追加していますか?
2)ファイルからランダムな線を返すために使用しているアルゴリズムが十分であり、問題は発生しないと思いますか?
サンプルファイルは次のとおりです。
line
number one
#
line number two
マイコード:あなたの助けを事前に
int main()
{
srand(time(0));
ifstream read("myfile.dat");
string line;
string selected_line;
int nlines = 0;
while(getline(read, line, '#')) {
if((rand() % ++nlines) == 0)
selected_line = line;
}
// this is adding a \n at the beggining of the string
cout << selected_line << endl;
}
感謝。
編集: OK、あなたが示唆しているものは、多くの意味があります。文字列はおそらく "\ nmystring"として読み込まれています。だから今私の質問は、私は文字列から最初の\ nを削除すると思いますか?
データは何ですかファイルはどう? –
Neilでは、データファイルは、単一の '#'文字を含む行で区切られた段落で構成されています。 –