道歉要问这样一个基本问题,但我真的不明白为什么In3不好。我想这里有一些基本的东西,我不知道
提前致谢
文件“testIn1.txt”的内容是: a b c 一个
我正在使用MS Visual C ++ 2010 Express。
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream In3;
ofstream Out3;
In3.open("testIn1.txt", fstream::in);
Out3.open("testOut1.txt", fstream::app);
cout << "Is In3 Good? " << In3.good() << endl;
cout << "Is OUt3 Good? " << Out3.good() << endl;
In3.close();
Out3.close();
}
答案 0 :(得分:2)
适合我(使用MinGW g ++作为编译器):
C:\>echo a b c a > testIn1.txt
C:\>g++ test.cpp -otest.exe
C:\>test
Is In3 Good? 1
Is OUt3 Good? 1
请注意,testIn1.txt应与可执行文件位于同一目录中,或者您应该为程序提供该文件的路径。如果在运行程序后创建了testOut1.txt,则可以验证您是否在正确的目录中(当然,之前不存在)。
我想到的其他一些事情:
要获取运行文件的目录,请尝试使用以下代码(source):
#include <unistd.h>
char *path=(char*)malloc(1024*sizeof(char));
size_t size;
path=getcwd(path,size);
cout<<"current Path: "<<path<<endl;
free(path);
请注意,MS编译器可能会抱怨getcwd
和/或unistd.h
,在这种情况下请尝试_getcwd
。
答案 1 :(得分:1)
我在Windows和Linux上测试了你的程序。
案例1
Windows和Linux中不存在该文件,或
案例2
在Windows中,如果该文件存在,则应该没有问题,在Linux中,如果未在正确的Name of File
中输入Case/Caps
,则可能无法打开。
如果没有设置流的错误标记good()
,则(eofbit, failbit and badbit)
函数返回true。
尝试添加此声明,看看你得到了什么:
cout << "Fail " << In3.fail() << endl;