#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int ch;
FILE *fp;
long count = 0;
char name[41];
printf("input the file's name:");
scanf("%s",name);
if ( (fp = fopen(name,"r")) == NULL)
{
printf ("Can't open %s\n", name);
exit(1);
}
while ((ch = getc(fp)) != EOF)
{
putc(ch,stdout);
count++;
}
fclose(fp);
printf ("\nFile %s has %ld characters\n",name,count);
return 0;
}
我把文件放在和可执行文件相同的目录下,输入文件名也不好使
可是我新建了,不就是已经存在了吗,用"r"应该好使啊
追答那应该就可以啊,我这就可以,看看截图,你的提示信息是什么?
那应该就可以啊,我这就可以,看看截图,你的提示信息是什么?
追问我刚才试了一下用wt+创建了一个test.txt,然后把wt+改为r+就可以找到了,但是一上来就用r+就不好使,这是什么原因呢?
追答这个就不太清楚了,不知道和你的系统有没有关系
你可以重新再建个工程,再来一把试试
直接用r看看这次行不行
还是不行啊呵呵,不知道什么原因,wt+是在内存中创建吧,但是test.txt存在硬盘上,用"r"访问可以吗
追答r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,只允许读写数据。
rt+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
应该不是这个原因吧,你检查一下你在C盘的test.txt文件,是不是文件设置的问题,我的感觉,好像不是程序的问题,要不你换到D或E盘试试
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,只允许读写数据。
rt+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
应该不是这个原因吧,你检查一下你在C盘的test.txt文件,是不是文件设置的问题,我的感觉,好像不是程序的问题,要不你换到D或E盘试试
还是不好使哈,造成这种情况的原因都有哪些呢?
追答个人的想法啊,ha
可能是文件设置不能读取或者系统设置了一些权限吧
在那个test.txt中输入一些字符试试,看看能不能读出来
实在不行就换个机器试试,如果可以了那就肯定不是程序的原因了,还要定位一下才知道具体原因~
试过了 还是不好使啊
追答你是用只读的方式打开的,前提是必须有test.txt这一文件在
楼下的方式不适合这段代码,打开的同时文件内容也进行了重写,如果想添加内容可将r换成a+进行追加