当我使用本书中推荐的代码时,出现错误。我正在使用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
需要做什么? 谢谢
答案 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