当前位置: 代码迷 >> C语言 >> 又得麻烦大家了
  详细解决方案

又得麻烦大家了

热度:235   发布时间:2006-07-29 22:23:45.0
又得麻烦大家了
我在谭教授书上照抄的程序,可是运行时却有一个错误,三个警告!
#include<stdio.h>
#include<stdlib.h>
void main()
{FILE * p;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{ printf("cannot open file\n");
exit(0);}
ch=getchar();
ch=getchar();
while(ch!='#'){
fputc(ch,fp);putchar(ch);
ch=getchar();}
putchar(10);
fclose(fp);}
错误是:undefined the symbol 'fp',
这不是胡扯吗?我明明定义了的啊!而且我检查了一下stdio.h,里面也明明定义了FILE!真是不明白!
搜索更多相关的解决方案: 麻烦  

----------------解决方案--------------------------------------------------------
大家别看了
!我又丢人了
----------------解决方案--------------------------------------------------------
?????????????????????
----------------解决方案--------------------------------------------------------

#include<stdio.h>
#include<stdlib.h>

/*
Ansi C根本没有void main这样的定义,但许多编译器并不会发生错误,建议改为int main,然后在程序的结束部分加上return 0;
*/

void main() {
/* 这里应该是输入的错误吧,所以会发生fp符号未定义的错误,改为FILE *fp;
FILE * p;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL) {
printf("cannot open file\n");
exit(0); /* 请包含头文件dos.h */
}

/* ch=getchar(); 一句getchar就够了吧,为什么要两句重复的? */
ch=getchar();
while(ch!='#') {
fputc(ch,fp);
putchar(ch);
ch=getchar();
}

putchar(10);
fclose(fp);
}

谭浩强书上代码的分风格不是很好,我帮你整理了一遍,然后把改的地方写在上面了。


----------------解决方案--------------------------------------------------------
  相关解决方案