请问为什么这个C里面的fileI/O没法实现
一个较为简单的读取一个txt文档中的每一行代码如下,但每次输入时总会显示“cannot open file" 而且我已经把commands.txt放进程序同一目录下,却还是如此,请大佬指正。
#include <stdio.h>
#include <string.h>
int main ()
{
FILE *fp;
int n = 0;
char expression;
// open the file
if (!(fp = fopen("commands.txt","rt")))
{
printf("cannot open file!\n");
return -1;
}
// read the file line by line
do{
if(fgets(expression, 256, fp))
{
// remove the '\n' if it exists
if (expression == '\n')
expression = '\0';
// do whatever you want for the line
printf("line %d: %s\n", ++n, expression);
}
}
while(!feof(fp));
fclose(fp);
return 0;
} 将 if (!(fp = fopen("commands.txt","rt"))) 改为:
if((fp=fopen("commands.txt","rt"))==NULL) 试一下 风过无痕1989 发表于 2020-11-4 12:03
将 if (!(fp = fopen("commands.txt","rt"))) 改为:
if((fp=fopen("commands.txt","rt"))==NULL) 试 ...
好像还是不可以诶 还是“cannot open file!” 这一句:
if (!(fp = fopen("commands.txt","rt")))
一定是错的!必须照 2 楼说的改,改过以后代码就没有问题了,如果再说找不着文件,那问题就是,文件一定不存在。 jackz007 发表于 2020-11-4 12:43
这一句:
一定是错的!必须照 2 楼说的改,改过以后代码就没有问题了,如果再说找不着 ...
如图 jpan1221 发表于 2020-11-4 12:10
好像还是不可以诶 还是“cannot open file!”
这样,你将 commands.txt 文件放到C盘根目录下,试一下我这个程序:
#include <stdio.h>
#include <string.h>
int main ()
{
FILE *fp;
int n = 0;
char expression;
// open the file
if((fp=fopen("c:\\commands.txt","rt"))==NULL)
{
printf("cannot open file!\n");
return -1;
}
// read the file line by line
do{
if(fgets(expression, 256, fp))
{
// remove the '\n' if it exists
if (expression == '\n')
expression = '\0';
// do whatever you want for the line
printf("line %d: %s\n", ++n, expression);
}
}
while(!feof(fp));
fclose(fp);
return 0;
}
jpan1221 发表于 2020-11-4 13:25
如图
你5楼发的图片中,if((fp=open(_filename: "commands.txt", _Mode: "rt"))==NULL) 多了红色部份的东西,将它们去掉 风过无痕1989 发表于 2020-11-4 13:37
你5楼发的图片中,if((fp=open(_filename: "commands.txt", _Mode: "rt"))==NULL) 多了红色部份的东西, ...
嗯,可以了谢谢 红色部分应该是clion编译器自动附上的注释,去不了
页:
[1]