2013-06-12 3 views
0

Я хочу добавить разрыв строки в текстовый файл, но ничего не происходит.Как добавить разрыв в строку при записи в текстовый файл

Вот мой код:

void controleformules::on_pushButton_4_clicked(
{ 
QString str= ui->textEdit_2->toPlainText(); 

QString filename= str+".txt"; 

QFile file(filename); 

if (file.open(QIODevice::ReadWrite)) 
{ 

    QTextStream stream(&file); 

     stream 
       << "U heeft nu deze 2 formules gekozen: Formule 1: " << x1Int << " + " << y1Int << " = " << r1Int << ". Formule 2: "<< x2Int << " + " << y2Int << " = " << r2Int << "." << '\n' 
       <<"eerst moet je in beide formules de x of de y elimeneren, wij doen de y eerst"; 
    } 
} 

Я попытался как "\n" и '\n',

Я надеюсь, что кто-то может мне помочь,

Заранее спасибо Тим Смитс

+2

См. Здесь http://stackoverflow.com/questions/4181630/how-can-i-place-a-line-break-while-writing-to-a-file Если вы используете окна, вам понадобится «\ r \ n» – Ian

+0

Проверьте, что означает «\ n». – m0skit0

+1

Как вы смотрите на текстовый файл? Действительно ли персонаж не получает выход, или ваш читатель просто игнорирует его? –

ответ

1

Ваш основной QIODevice (файл) на самом деле не работает в текстовом режиме. Используйте QIODevice::Text при открытии файла, который используется вместе с потоком

QFile file(filename , QIODevice::Text); 
... 
QTextStream stream(&file); 

Для текстового потока, как "\n" и '\n' должны работать. Вместо этого вы можете выбрать std::endl (или, точнее, его аналог в Qt), но это не обязательно. "\n" и '\n' будут выдавать правильный результат независимо от ОС, если ваш выходной поток действительно представляет поток и предполагает, что ваш файл сгенерирован на той же платформе, которую вы используете для его проверки. (Замечания, утверждающие, что "\r\n"должны использоваться на Windows, неверны.)

Примером ситуации, когда вы на самом деле придется использовать "\r\n", когда вы пытаетесь создать текстовый файл для Windows на системе POSIX.

+0

'QTextStream' - текстовый поток_. У этого даже нет конструктора, который принимает как 'QFile', так и QIODevice :: OpenMode' – Lol4t0

+0

@ Lol4t0: Это« текстовый поток »в том смысле, что его интерфейс форматирования предназначен для работы с текстовыми данными. Это ** не ** текстовый поток в смысле C++ термина (по умолчанию). Чтобы быть текстовым потоком в этом смысле, он должен быть явно открыт с открытым режимом QIODevice :: Text. – AnT

+0

Вы можете предоставить любую ссылку? Опять же, ваш код не будет компилироваться, так как QTextStream не имеет приемлемого конструктора. – Lol4t0

Смежные вопросы