2017-02-21 30 views
-2

Я пытаюсь распечатать содержимое файла, однако он ничего не напечатает, он вернет только 0. Я проверил и дважды проверил свой код, и я не могу найти любая причина, почему это не сработает. Вот пример моего кода.C++ Программа не отображает файл в консоли

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

int main() { 
    ifstream infile("test.txt"); 
    string line; 
    if(infile.is_open()) 
    { 
     cout << infile.rdbuf(); 
    } 
    else 
    { 
     cout << "error" << endl; 
    } 
    infile.close(); 
    return 0; 
} 
+0

Вы никогда не запускали, чтобы читать что-либо в буфере? –

+0

У меня есть файл в той же папке, что и my main.cpp. Я использую xcode в своем macbook. – science1324

+0

Возможный дубликат [Читать весь ASCII-файл в C++ std :: string] (http://stackoverflow.com/questions/2602013/read-whole-ascii-file-into-c-stdstring) – user4581301

ответ

0

Вы можете просто прочитать его в строке, а затем распечатать.

#include <string> 
#include <fstream> 
#include <streambuf> 

void func() 
{ 
    // Read into a buffer. 
    std::ifstream t("file.txt"); 
    std::string str; 

    t.seekg(0, std::ios::end); 
    str.reserve(t.tellg()); 
    t.seekg(0, std::ios::beg); 

    // Assign to a string. 
    str.assign((std::istreambuf_iterator<char>(t)), 
      std::istreambuf_iterator<char>()); 

    // Print out the string to the console. 
    std::cout << str << "\n"; 
} 
+0

Спасибо! Все, что пытались сделать, это прочитать файл и отобразить содержимое в консоли. – science1324

+0

@ science1324 Когда вы найдете сообщение удовлетворительного ответа, отметьте его как «Ответ». – DiB