C fopen无法使用字符串参数

C fopen无法使用字符串参数,c,fopen,C,Fopen,我有一个如下所示的字符矩阵 char files[4][10]; 在矩阵中,这些字符数组被保留 file1.txt file2.txt file3.txt file4.txt 此代码给出输出:无法打开。我哪里做错了?我会想到两件事: file1.txt在您调用可执行文件的目录中不可用 您不显示如何初始化文件数组。可能是您不是0正在终止字符串。 1文件是否在同一目录中?2您是否检查了文件[0]是否实际包含正确的字符串?PrintFc无法打开%s:%s\n,文件[0],strerrornO;查找失

我有一个如下所示的字符矩阵

char files[4][10];
在矩阵中,这些字符数组被保留

file1.txt file2.txt file3.txt file4.txt
此代码给出输出:无法打开。我哪里做错了?

我会想到两件事:

file1.txt在您调用可执行文件的目录中不可用 您不显示如何初始化文件数组。可能是您不是0正在终止字符串。
1文件是否在同一目录中?2您是否检查了文件[0]是否实际包含正确的字符串?PrintFc无法打开%s:%s\n,文件[0],strerrornO;查找失败原因以及文件[0]是否包含您认为正确的内容。是,它包含正确的文件,并且它们位于相同的位置dir@user1772101,程序二进制文件和文件是否在同一目录中并不重要。程序在同一目录中执行确实很重要。我从另一个文件中读取了这些文件名。因此我认为问题不在于此。我无法正确理解您的问题,但我在矩阵的每一行末尾添加了\n字符。@user1772101这是您的问题,0终止意味着最后一个字符应该是“\0”。没有换行符。我在每行末尾添加了\0个字符,但仍然不起作用。嗯,你为什么接受这个答案?什么有效?请再给我看看code@user1772101不要接受那些不能解决问题或不属于你的问题的答案。因为,如果你接受了错误的一个,许多其他人可能会面临同样的问题。那么,这可能会给他们带来更多的麻烦。
    FILE *file;

    file = fopen(files[0],"rb");

    if(file == NULL){
       printf("cannot open");
    }
    else printf("opened");