#include<stdio.h>
main()
{
FILE *fp;
char ch,str[5000];
fgets(str,20,stdin);
if((fp=fopen("str","r+"))==NULL)
{
printf("The file can not be opened.\n");
exit(1);
}
while((ch=fgetc(fp))!=EOF)
{
fputc(ch,stdout);
fp=fseek(fp,0,2);
}
while(strlen(fgets(str,64,stdin))>0)
{
fputs(str,fp);
fputs("\n",fp);
}
fclose(fseek(fp,0,0));
}
我在同目录下用记事本建了一个测试用的TXT文件,然后调试输入文件名test.txt,可总说文件打不开,要怎么才能打开文件?
----------------解决方案--------------------------------------------------------
代码很乱,错误很多
先
gets获得文件名
然后
fp=fopen(文件名,"r+"); /*文件名如果存储于字符串变量中不要加引号*/
----------------解决方案--------------------------------------------------------
最初我是用main带参来打开文件的,也是打不开,就改成这样了。原来的代码是这样的:
#include<stdio.h>
main(char *argv[])
{
FILE *fp;
char ch,str[5000];
if((fp=fopen("argv[1]","r+"))==NULL)
{
printf("The file can not be opened.\n");
exit(1);
}
………………
问题也是只显示“The file can not be opened.”
----------------解决方案--------------------------------------------------------
在命令行里带参运行:
----------------解决方案--------------------------------------------------------
最初我是用main带参来打开文件的,也是打不开,就改成这样了。原来的代码是这样的:
#include<stdio.h>
main(char *argv[])
{
FILE *fp;
char ch,str[5000];
if((fp=fopen("argv[1]","r+"))==NULL) /*这个地方argv[1]不要加引号*/
{
printf("The file can not be opened.\n");
exit(1);
}
………………
问题也是只显示“The file can not be opened.”
----------------解决方案--------------------------------------------------------
受教了,main() 还好带参数的。。
----------------解决方案--------------------------------------------------------
太乱了,看不懂意图!!!
fclose(fseek(fp,0,0));?????
而fseek()返回一个int!!
----------------解决方案--------------------------------------------------------