使用C++fstream类在另一个目录中打开一个文件
Open a file in another directory with the C++ fstream class
当我用参数运行代码时,当文件在另一个目录中时,我无法读取它,就像这样。
在控制台
./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 firstdata.dat seconddata.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
有什么问题吗?或者我给出论点的方式有什么不同吗?
对不起,我把这个作为答案。但答案的格式比评论好。
无论如何,使用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函数发现的任何错误。因此,如果您有权限问题或文件路径问题,它将被打印出来。
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 挂起和取消挂起一个文件DLL
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- C++试图读取一个文件并输出到另一个文本文件
- 如何从另一个文件继承私有成员变量和公共函数
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 如何打开并写入一个名称取自C++中字符串的文件
- 构建一个由C和C++文件组成的库
- c++多进程编写一个唯一的文件
- 如何使用CLion在Mac上创建一个新的.txt文件
- 如何将class.cpp和class.hpp编译为一个.o文件
- 写入文件会产生一个空文件或根本没有文件
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 生成一个生成文件,该生成文件使用Automake在一个步骤中编译和链接所有源文件
- 为什么我的 heap.h 文件给我一个LNK2001错误?
- Pantheios 不使用 MFC 应用程序写入一个文件(一个 exe + 两个 DLL)
- 在C++中一次读取一个文件一个int
- 输入/输出文件(一个字母的大写)
- 如何使用两个预编译的头文件.一个用于托管代码,另一个用于非托管代码.xxx.PCH不是一个有效的预编译头文件