2010-07-01 140 views
0

当我使用本书中推荐的代码时,出现错误。我正在使用NetBeans 6.8 for Mac。C++:如何编写一个程序从文件中读取整数?

下面是代码:

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

int main() 
{ 

    ifstream inputFile; 

    int number; 

    inputFile.open("MacintoshHD/Users/moshekwiat/Desktop/random.txt"); 

    inFile >> number; 

    cout<<endl <<number<<endl; 

    inputFile.close(); 

    return (0); 
} 

以下是错误:

main.cpp:20: error: 'inFile' was not declared in this scope 

什么需要做的事情? 谢谢

回答

2

与INPUTFILE更换INFILE。

+0

谢谢,摆脱了错误,但现在它只是输出0!该文件在每行上有不同的编号 – mokwi8 2010-07-01 14:59:59

+0

@ mokwi8:如果要读取每行,请这样做。程序中没有循环的痕迹。您在程序中从inFile中读取一次,这可能是发生了什么事情。 – 2010-07-01 15:01:44

+0

@David Thornley:对不起,我是一般的C++ /编程新手。什么是最好的循环语句使用?我不知道有多少数字。 此外,我检查了文件的第一个数字不是0,它是42 – mokwi8 2010-07-01 15:05:15

1

变化​​到inputFile

1

首先,代码中没有'inFile'对象。再次

inFile >> number; 

看:

ifstream inputFile; 
1

使用INPUTFILE而不是INFILE

2

问题1(一个编译器看到)是一个简单的拼写错误:INFILE应被输入文件。确保在发布到堆栈溢出之前检查此类错误。

问题2:文件的路径名称可能是错误的,一般来说,当您尝试从无法正确初始化的流中读取文件时,您将得到0。

在这种情况下,你指定的路径是相对路径从您的项目启动在目录中的文件,所以无论目录你运行该程序从需要一个名为“MacintoshHD”子目录,然后在“用户” ,那么......你明白了。要获取正确的路径,请右键单击Finder中的文件,然后选择“获取信息”。在“Where:”下,您会看到包含文件的目录的正确路径;它可能会说“/用户/ moshekwiat /桌面”。添加“/random.txt”到那个,这应该是你使用的路径。

通常情况下,C++程序员将编写代码以确保在从中读取文件之前该文件可以正确打开。一个简单的方法来检查,初始化inputFile后,但试图读取它之前是:

if (! inputFile) { 
    cerr << "Could not open the file!" << endl; 
    return 1; // returning non-0 status is customary 
       // if your program encounters an error 
} 
相关问题