C语言 一个简单fgets()函数问题
#include<stdio.h>main(){intn=5;charstr[6];FILE*fp;fp=fopen("C:\ProgramFiles(x86)\MyCo...
#include <stdio.h>
main()
{
int n=5;
char str[6];
FILE *fp;
fp=fopen("C:\Program Files (x86)\MyCode\file1.c","r");
fgets(str,n,fp);
fclose(fp);
}
编译没有错误,但是在VC++6.0运行提示错误,大致是Expression str!=NULL。请高手帮忙解答下。谢谢
file1.c不是这个文件。那你觉得这个fopen会出什么问题呢?我怎么知道是不是他的问题?
#include <stdio.h>
main()
{
FILE *fpin,*fpout;
char a[10];
fpin=fopen("C:\Program Files (x86)\MyCode\file1.c","r");
fpout=fopen("C:\Program Files (x86)\MyCode\file2.c","w");
fgets(a,9,fpin);
fputs(a,fpout);
fclose(fpin);
fclose(fpout);
getch();
}
在我电脑上编译也错误,我蛋都碎了。麻烦再帮忙看看,谢谢了。 展开
main()
{
int n=5;
char str[6];
FILE *fp;
fp=fopen("C:\Program Files (x86)\MyCode\file1.c","r");
fgets(str,n,fp);
fclose(fp);
}
编译没有错误,但是在VC++6.0运行提示错误,大致是Expression str!=NULL。请高手帮忙解答下。谢谢
file1.c不是这个文件。那你觉得这个fopen会出什么问题呢?我怎么知道是不是他的问题?
#include <stdio.h>
main()
{
FILE *fpin,*fpout;
char a[10];
fpin=fopen("C:\Program Files (x86)\MyCode\file1.c","r");
fpout=fopen("C:\Program Files (x86)\MyCode\file2.c","w");
fgets(a,9,fpin);
fputs(a,fpout);
fclose(fpin);
fclose(fpout);
getch();
}
在我电脑上编译也错误,我蛋都碎了。麻烦再帮忙看看,谢谢了。 展开
6个回答
展开全部
是路径写错了,路径里一定要用“\\”,因为‘\’是转义字符,两个'\'才最终表示一个'\'。
因为路径错了,所以fopen打开文件不成功,fp=NULL,再用fgets的话就出现了你说的Expression str!=NULL的错误。
建议每次用fopen之后都要判断文件打开是否成功,例如本题中
fp=fopen("C:\\Program Files (x86)\\MyCode\\file1.c","r");
if(fp==NULL)
{
printf("can not open the file!\n");
return;
}
因为路径错了,所以fopen打开文件不成功,fp=NULL,再用fgets的话就出现了你说的Expression str!=NULL的错误。
建议每次用fopen之后都要判断文件打开是否成功,例如本题中
fp=fopen("C:\\Program Files (x86)\\MyCode\\file1.c","r");
if(fp==NULL)
{
printf("can not open the file!\n");
return;
}
2011-08-09
展开全部
麻烦`采纳.··.··.·
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fopen函数运行好之后对fp判断一下是否为NULL,如果文件不存在或打开不成功,fp为NULL,后面自然就不对了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
弱地问一下,这个程序不会就是file1.c吧。
你这个程序如果都打开的话,估计读不到。
那你在open函数后面看一下,fpin和fout是不是都为NULL阿。
你这个程序如果都打开的话,估计读不到。
那你在open函数后面看一下,fpin和fout是不是都为NULL阿。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fopen("C:\Program Files (x86)\MyCode\file1.c","r");
应该是这样
fopen("C:\\Program Files (x86)\\MyCode\\file1.c","r");
需要有转义符。
应该是这样
fopen("C:\\Program Files (x86)\\MyCode\\file1.c","r");
需要有转义符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Solved the problem! I hadn't put my targetfile tracking .csv file into my debug directory. Thanks for the advice, i should put the file opening checking code into my program anyways!
这是一个外国人回答的 希望对你有帮助
这是一个外国人回答的 希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询