Я не могу добавить новую строку в строку C ++ - PullRequest
4 голосов
/ 09 ноября 2010

Как добавить новую строку в строку c ++? Я пытаюсь прочитать файл, но когда я пытаюсь добавить '\ n', он не работает.

std::string m_strFileData;
while( DataBegin != DataEnd ) {
    m_strFileData += *DataBegin;
    m_strFileData += '\n';
    DataBegin++;
}

Ответы [ 5 ]

8 голосов
/ 09 ноября 2010

Если вам нужно обработать много строк, использование stringstream может быть более эффективным.

ostringstream lines;

lines << "Line 1" << endl;
lines << "Line 2" << endl;

cout << lines.str();   // .str() is a string

Выход:

Line 1
Line 2
2 голосов
/ 06 июня 2013

Извините за поздний ответ, но у меня была похожая проблема, пока я не понял, что визуализатор Visual Studio 2010 char* игнорирует символы \r и \n. Они полностью исключены из него.

Примечание. Под визуализатором я подразумеваю то, что вы видите при наведении курсора на char* (или string).

1 голос
/ 09 ноября 2010

Просто предположение, но, возможно, вам следует изменить символ на строку:

 m_strFileData += '\n';

быть таким:

 m_strFileData += "\n";
1 голос
/ 09 ноября 2010

Это добавит новую строку после каждого символа или строку в зависимости от того, какой тип DataBegin на самом деле. Ваша проблема не заключается в приведенном вами примере кода. Было бы более полезно, если бы вы указали ожидаемые и фактические результаты, а также использовали типы данных переменных.

0 голосов
/ 19 августа 2016

Попробуйте это:

ifstream inFile;
inFile.open(filename);
std::string entireString = "";
std::string line;

while (getline(inFile,line))
{
   entireString.append(line);
   entireString.append("\n");
}
...