C ++:如何编写程序来读取文件中的整数?

时间:2010-07-01 14:41:12

标签: c++

当我使用本书中推荐的代码时,出现错误。我正在使用NetBeans 6.8 for Mac。

以下是代码:

#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

需要做什么? 谢谢

6 个答案:

答案 0 :(得分:2)

用inputFile替换inFile。

答案 1 :(得分:2)

问题1(编译器看到的那个)是一个简单的错字:inFile应该是inputFile。确保在发布到Stack Overflow之前检查这样的拼写错误。

问题2:文件的路径名可能有误,通常,当您尝试从无法正确初始化的流中读取因为无法打开文件时,您将获得0。 / p>

在这种情况下,您指定的路径是程序启动目录中文件的相对路径,因此无论您运行程序的目录是什么,都需要一个名为“MacintoshHD”的子目录,那么“用户”,然后......你明白了。要获取正确的路径,请在Finder中右键单击该文件,然后选择“获取信息”。在“Where:”下,您将看到包含文件的目录的正确路径;它可能会说“/ Users / moshekwiat / Desktop”。添加“/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
}

答案 2 :(得分:1)

inFile更改为inputFile

答案 3 :(得分:1)

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

inFile >> number;

再看一遍:

ifstream inputFile;

答案 4 :(得分:1)

将inFile更改为inputFile

答案 5 :(得分:1)

使用inputFile而不是inFile