Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么会使ios::fail()计算为1?_C++_Linux_Fstream - Fatal编程技术网

C++ 什么会使ios::fail()计算为1?

C++ 什么会使ios::fail()计算为1?,c++,linux,fstream,C++,Linux,Fstream,我正在尝试用打开一个文件 27 string tline; 28 ifstream finp; // input file 29 ifstream dinp; // data files 30 31 finp.open(argv[1]); 32 33 34 cout << "finp.good() = " << finp.good() << endl; 35 cout << "finp.bad() = " <&l

我正在尝试用打开一个文件

27   string tline;
28   ifstream finp; // input file
29   ifstream dinp; // data files
30 
31   finp.open(argv[1]);
32 
33 
34   cout << "finp.good() = " << finp.good() << endl;
35   cout << "finp.bad() = " << finp.bad() << endl;
36   cout << "finp.fail() = " << finp.fail() << endl;
现在,除了这是一个内部逻辑问题之外,我找不到任何关于什么会导致这种情况的好文档。我该怎么做才能纠正这个问题

如果有帮助的话,我在linux上运行,需要同时包含
,而在OSX上运行时不必这样做。这可能是问题所在吗?如果是,我该如何更正它?

fail()
在尝试转换失败时将返回1。例如,如果文件中的下一个字符不是数字,并且您尝试读取
int
,则将设置failbit,并且
fail()
将返回1。当您已经在文件末尾时尝试的任何转换也将设置failbit

如果设置了
badbit
,则
fail()
也将返回1。这表示文件本身存在严重问题,而不仅仅是无法从文件中读取某些特定数据。

fail()
在尝试转换失败时将返回1。例如,如果文件中的下一个字符不是数字,并且您尝试读取
int
,则将设置failbit,并且
fail()
将返回1。当您已经在文件末尾时尝试的任何转换也将设置failbit


如果设置了
badbit
,则
fail()
也将返回1。这表明文件本身存在严重问题,而不仅仅是无法从文件中读取某些特定数据。

请原谅,我犯了一个简单的错误。当我将源文件移植到linux系统时,我也移植了一个脚本。我把可执行文件和脚本搞混了,脚本中有一个硬编码的文件名,它不在目录中


基本上,我是无意中试图读取一个不存在的文件

请原谅,我犯了一个简单的错误。当我将源文件移植到linux系统时,我也移植了一个脚本。我把可执行文件和脚本搞混了,脚本中有一个硬编码的文件名,它不在目录中

基本上,我是无意中试图读取一个不存在的文件

finp.good() = 0
finp.bad() = 0
finp.fail() = 1