c语言错误:'FILE' : illegal use of this type as an expression这是神马情况?
#include"stdio.h"#include"string.h"#defineK_MAX_PATH255intmain(intargc,char*argv[]){c...
#include "stdio.h"
#include "string.h"
#define K_MAX_PATH 255
int main(int argc,char * argv[])
{
char pszTempPathName[K_MAX_PATH],*p;
strcpy(pszTempPathName,argv[0]);
p=strrchr(pszTempPathName,'\\')+1;
strcpy(p,"LastResu.bin");
FILE * fp=fopen(pszTempPathName,"wb");
//FILE * fp;
//fp=fopen(pszTempPathName,"wb");//这样写也不行
//if(fp==0){printf("Can not open file:LastResu.bin!");return 1;}
//fclose(fp);
}
编译结果:
D:\KCS\source\rst.c(15) : error C2275: 'FILE' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\stdio.h(156) : see declaration of 'FILE'
D:\KCS\source\rst.c(15) : error C2065: 'fp' : undeclared identifier
点击错误行,弹出stdio.h中的这些行,
#ifndef _FILE_DEFINED
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif
诸位大侠,到底哪里错了? 展开
#include "string.h"
#define K_MAX_PATH 255
int main(int argc,char * argv[])
{
char pszTempPathName[K_MAX_PATH],*p;
strcpy(pszTempPathName,argv[0]);
p=strrchr(pszTempPathName,'\\')+1;
strcpy(p,"LastResu.bin");
FILE * fp=fopen(pszTempPathName,"wb");
//FILE * fp;
//fp=fopen(pszTempPathName,"wb");//这样写也不行
//if(fp==0){printf("Can not open file:LastResu.bin!");return 1;}
//fclose(fp);
}
编译结果:
D:\KCS\source\rst.c(15) : error C2275: 'FILE' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\stdio.h(156) : see declaration of 'FILE'
D:\KCS\source\rst.c(15) : error C2065: 'fp' : undeclared identifier
点击错误行,弹出stdio.h中的这些行,
#ifndef _FILE_DEFINED
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif
诸位大侠,到底哪里错了? 展开
3个回答
展开全部
代码没问题
怀疑是纯C环境 比较老的版本
所以要求变量定义只能在开头
你改成这样试试
#include "stdio.h"
#include "string.h"
#define K_MAX_PATH 255
int main(int argc,char * argv[])
{
char pszTempPathName[K_MAX_PATH],*p;
FILE * fp;
strcpy(pszTempPathName,argv[0]);
p=strrchr(pszTempPathName,'\\')+1;
strcpy(p,"LastResu.bin");
fp=fopen(pszTempPathName,"wb");
//FILE * fp;
//fp=fopen(pszTempPathName,"wb");//这样写也不行
//if(fp==0){printf("Can not open file:LastResu.bin!");return 1;}
//fclose(fp);
}
展开全部
http://en.wikipedia.org/w/index.php?title=C99&oldid=435310180
按 c99 没有错。但 MSVC 还不认 c99 。
FILE * fp=fopen(pszTempPathName,"wb");
分开成 FILE *fp 在开头,和
fp = fopen(pszTempPathName, "wb");
按 c99 没有错。但 MSVC 还不认 c99 。
FILE * fp=fopen(pszTempPathName,"wb");
分开成 FILE *fp 在开头,和
fp = fopen(pszTempPathName, "wb");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
变量需定义在最前。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询