当我使用参数运行我的代码时,当它在另一个目录中时,我无法读取该文件,就像这样。
在控制台中
./exit first/data.dat second/data.dat
代码是:
#include <fstream>
int main(int argc, char *argv[]){
const char *In1 = argv[1];
const char *In2 = argv[2];
ifstream fp1;
ifstream fp2;
fp1.open(In1);
fp2.open(In2);
if(!fp1 || !fp2){
printf("Error");
}
...
}
此外,当参数是与exececutable在同一目录中的文件完美无缺时,如下所示:
./exit data1.dat data2.dat
我尝试过不同的参数格式,例如:
./exit first\data.dat second\data.dat
./exit first//data.dat second//data.dat
./exit first\\data.dat second\\data.dat
./exit .first/data.dat .second/data.dat
./exit ..first/data.dat ..second/data.dat
./exit ../first/data.dat ../second/data.dat
./exit ..//first//data.dat ..//second//data.dat
等
fstream
出了什么问题,或者我提出的论点或方式不同?
答案 0 :(得分:0)
对不起,我把它作为答案。但答案的格式比评论更好。
无论如何,使用perror()来告诉你问题可能是什么......这样的事情:
#include <stdio.h>
int main ()
{
FILE * pFile;
pFile=fopen ("unexist.ent","rb");
if (pFile==NULL)
perror ("The following error occurred");
else
fclose (pFile);
return 0;
}
perror()将打印libc函数发现的任何错误。因此,如果您有权限问题或文件路径问题,它将被打印出来。