2016-09-13 91 views
1

我有一些代码,我试图去工作。基本上我想打开一个文件并将内容打印到终端。现在,我刚刚在.cpp文件所在的文件夹中的.txt文件中获得了一个列表(1-10)。C++ fstream和打印到终端

int main() { 
    ifstream inFile;  
    inFile.open("numbers.txt"); 

    if(inFile.fail()) {  
    cout<<"Error opening file "<< endl;  
    return 0; 
    } 

    while(!(inFile.fail())) { 
    int x; 
    inFile >> x; 
    cout<<x<< endl; 
    } 
} 

这是我到目前为止,它的工作原理打开文件并打印到控制台。唯一的问题是,它打印文件的最后一行两次(所以它打印1-10罚款,但打印10两次)我已经难倒自己试图找出这一点。有任何想法吗?

感谢您帮我编辑这个!

回答

4

试试下面的代码

#include <iostream> 
#include <fstream> 
using namespace std; 
int main() { 
    ifstream inFile; 
    inFile.open("a.txt"); 

    if(inFile.fail()) { 
    cout<<"Error opening file "<< endl; 
    return 0; 
    } 

    int x; 
    while(inFile >> x) { 
    cout<<x<< endl; 
    } 
} 
+0

这让我想起scanf()的和喜欢返回一个值。 –

+0

谢谢,我不知道你可以使用该行作为布尔表达式 – Elchapo