Разрыв строки в C ++ - PullRequest
       3

Разрыв строки в C ++

8 голосов
/ 14 марта 2012

Это мой код:

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream ifile ("input.dat", ios::in);
    ofstream ofile ("output.dat",ios::out);

    int num;
    ifile >> num;
    ofile << num;
    ofile << endl;
    ofile << "Did we go to new line?";
    ofile << endl;

    return 0;
}

Проблема в том, что все в output.dat находится на одной строке.Как мне решить эту проблему?

Спасибо!

РЕДАКТИРОВАТЬ: я использовал Windows, чтобы увидеть файлы и Linux для компиляции.Вот почему я столкнулся с этой проблемой.Использование cat output.dat на стороне Linux для просмотра содержимого файла показало бы, что разрывы строк в Windows и Linux отличаются в то время.

Ответы [ 2 ]

6 голосов
/ 14 марта 2012

Замените std::endl на "\r\n", чтобы получить CRLF вместо просто LF.

2 голосов
/ 14 марта 2012

std :: endl уже вставляет разрыв строки, поэтому в вашем файле есть разрывы строки. Я предполагаю, что вы генерируете свой файл в системе LF (Linux или другой UNIX-подобной) и просматриваете его в системе CRLF. В этом случае ваш перевод строки не будет отображаться в текстовом редакторе как перевод строки. unix2dos твой друг.

...