2014-11-19 2 views
0

Я хотел бы записать данные файла в отдельной строке. Код шоу ниже:Как записать данные в файл в отдельной строке?

#include <iostream> 
#include <fstream> 
#include <vector> 
using namespace std; 
void writeToFile(const vector<double> &data){ 
    ofstream outFile("newData.txt", std::ofstream::binary); 
    double num1 = 1, num2 = 2, num3 = 4; 
    for (const auto &it : data) { 
     outFile << it << endl; 
    } 
    outFile.close(); 
} 
int main(){ 
    vector<double> data { 1, 2, 3, 4 }; 
    writeToFile(data); 
    return 0; 
} 

Выходной файл "newData.txt" является:

123 

Я хотел бы получить:

1 
2 
3 

Я использую Endl, но он не работает. У вас есть идея, как его решить? Благодарю.

+0

О чем вы говорите? После запуска этого файла он будет создавать новое с каждым номером на новой строке. –

+0

Какой компилятор вы используете? Я запускаю его в visual studia 2013, и он работает, как я сказал ... – user3603858

+0

Вы пишете текст ASCII в файл, так зачем использовать двоичный файл? –

ответ

1

Не используйте std::ofstream::binary для текстовых файлов. Открыть как:

ofstream outFile("newData.txt", std::ofstream::out); 

или что то же самое только:

ofstream outfile("newData.txt"); 
+1

@ user3603858 Не использовать его? –

+0

Отредактировано с моим предложением. –

1

Его, потому что вы открываете файл в двоичном режиме. Попробуйте outstream outFile («new.txt»), это откроет файл в текстовом режиме, и endl должен теперь писать числа в отдельной строке.

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