2016-09-20 41 views
-2

我是一个初学者程序员,我有一个问题,我敢肯定只是由一个愚蠢的错误造成的,但我对我的生活无法弄清楚它是什么是。我试着在这个网站搜索解决方案,但没有我找到了补救的工作了我的问题简单的C++文件读取程序只返回垃圾

#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 
int main() 
{ 
    ifstream inputFile; 
    float num; 
    inputFile.open("numbers.txt"); 
    inputFile >> num; 
    cout << num << endl; 
    inputFile >> num; 
    cout << num << endl; 
    inputFile >> num; 
    cout << num << endl; 
    inputFile >> num; 
    cout << num << endl; 
    inputFile >> num; 
    cout << num << endl; 

    inputFile.close(); 

    return 0; 
} 

所以这是一个简单的代码,而我在看课本我逐字就做什么,但每当我运行它只是产生垃圾的代码与使用不同程序创建的numbers.txt文件。

如果有人能告诉我我的错误在哪里,或告诉我在哪里查找这个问题,我会很感激。在此先感谢

编辑:我使用不同的代码来创建该文件,我可以证实,该文件是为.txt格式创建成功

+1

从文件读取之前,请务必检查文件“is_open()”。 – NathanOliver

+2

您从未测试过该文件是否正确打开,如果您输入操作成功,您也不会测试该文件。 –

+0

好吧,所以我用is_open()来测试文件是否打开,并且我得到了我的错误信息,表示打开文件时出现错误。我该如何确保文件正在打开? –

回答

0

请检查文件是否正确打开。添加下面的代码后inputFile.open("numbers.txt");

if(inputFile.fail()) 
{ 
    cerr<< "Error Opening File" << endl; 
    exit(1); 
} 

也可以尝试给该文件的绝对路径,如果在打开文件时发生错误。

+0

好吧我尝试了你的代码,并且继续使用像Nathan Oliver所说的is_open()做了一个if else语句,并且确实让我的错误信息弹出来了。 我也复制并粘贴完整的文件位置:C:\ Users \ enjoy \ Documents \ Visual Studio 2015 \ Projects \ ConsoleApplication6 \ ConsoleApplication6 \ numbers.txt。 仍然没有喜悦 –

+0

你能张贴numbers.txt – hashdefine

+0

是的,先生的内容 12.6 10.4 3.54 10.61 3.45 每个数字是用同一套尝试自己独立的行 –