У меня два вопроса:
1) Почему мой код добавляет возврат каретки в начале строки selected_line?
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 beginning of the string
cout << selected_line << endl;
}
РЕДАКТИРОВАТЬ: ОК, то, что некоторые из вас предложили, имеет большой смысл. Строка, вероятно, читается как "\ nmystring". Итак, я думаю, теперь мой вопрос, как я могу удалить первый \ n из строки?