2016-03-04 49 views
-3

У меня есть некоторый код здесь https://github.com/Fallauthy/Projects/blob/master/cPlusPlusProjects/bazaPracownikow/bazaPracownikow/bazaPracownikow/main.cppКак показать содержимое файла в C++

И я понятия не имею, как показать содержимое в моем файле. Я имею в виду, я знаю, как, но он не показывает то же, что у меня есть в файле (в ссылке). Он отображается в следующей строке. Этот код отвечает за загрузку файла

while (!baseFile.eof()) { 
    //wczytaj zawartosc pliku do zmiennej 
    std::string buffer; 
    baseFile >> buffer; 

    //wypisz 
    loadLineFromBase += buffer; 
    loadLineFromBase += " \n"; 
} 
std::cout << loadLineFromBase << std::endl; 
+4

[* Почему 'iostream :: eof' внутри условия цикла считается неправильным? *] (Http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop- условие-считается-неправильным) – BoBTFish

+0

'baseFile >> buffer' просто читает одно слово, а не строку. Используйте 'getline()' для чтения целой строки. – Barmar

ответ

0

Если я не вижу весь ваш код все, что я могу для вас сделать, это дать вам образец в свою очередь, я не знаю, что вы пытаетесь сделать, но это, кажется, в этот случай вы ищете.

#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

int main() 
{ 

    string Display = ""; 
    ofstream FileOut; 
    ifstream FileInput; 

    FileOut.open("C:\\Example.txt"); 

    FileOut << "This is some example text that will be written to the file!"; 

    FileOut.close(); 

    FileInput.open("C:\\Example.txt"); 

    if (!FileInput) 
    { 
     cout << "Error File not Found: " << endl; 
     return 1; 
    } 

    while (!FileInput.eof()) 
    { 
     getline(FileInput, Display); 
    } 
    FileInput.close(); 
    cout << Display << endl; 

    return 0; 
} 

Проще говоря, если вы в настоящее время работает остроумие га текстовый документ

использование getline()

При использовании GetLine() он принимает два аргумента первым будет в этом случае ваш объект ifstream, как в том, что вы используете, чтобы открыть файл. Вторая будет строкой, которую вы используете для хранения содержимого.

Используя описанный выше метод, вы сможете прочитать все содержимое файла.

И, пожалуйста, в следующий раз, как было сказано выше, более подробно расскажите о своей проблеме, и если вы предоставите нам весь свой код, мы можем вам помочь!

0

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

std::string buffer; 

// read every line of baseFile till EOF 
while (std::getline(baseFile, buffer)) { 

    std::cout << buffer << '\n'; 
} 
Смежные вопросы