当前位置: 代码迷 >> C语言 >> [求助]标准文件操作的问题
  详细解决方案

[求助]标准文件操作的问题

热度:207   发布时间:2007-08-06 11:08:35.0
[求助]标准文件操作的问题
代码是这样的:
#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,可总说文件打不开,要怎么才能打开文件?
搜索更多相关的解决方案: str  文件  fgets  fgetc  

----------------解决方案--------------------------------------------------------

代码很乱,错误很多

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.”


----------------解决方案--------------------------------------------------------
在命令行里带参运行:


----------------解决方案--------------------------------------------------------
以下是引用行走在2007-8-6 11:48:06的发言:

最初我是用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!!

----------------解决方案--------------------------------------------------------