牛人帮忙看看,直接运行.c文件的时候出现一错误,编译的时候出现二警告,请牛人帮忙细致的解释一下感谢!

一错误:[root@bogon/]#./c1.c./c1.c:行6:未预期的符号`('附近有语法错误./c1.c:行6:`(fp=fopen("c1.txt","rt")... 一错误:
[root@bogon /]# ./c1.c
./c1.c:行6: 未预期的符号 `(' 附近有语法错误
./c1.c:行6: `(fp=fopen("c1.txt","rt"))='

二警告:
[root@bogon /]# gcc c1.c -o c1
c1.c: 在函数‘main’中:
c1.c:10:12: 警告:隐式声明与内建函数‘exit’不兼容 [默认启用]
exit(1);

以上两个问题怎么解决呢??(能运行正确的结果!)

#include<stdio.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("c1.txt","rt"))==NULL)
{
printf("\nCannot open file strike any key exit!");
getch();
exit(1);
}
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
展开
 我来答
darkelemental
推荐于2016-08-09 · TA获得超过242个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:101万
展开全部
#include<stdio.h>
#include<stdlib.h>//<--------
main()
{
    FILE *fp;
    char ch;
    if((fp=fopen("c1.txt","rt"))==0) //<------
       {
           printf("\nCannot open file strike any key exit!");
           getch();
           exit(1);
        }
      ch=fgetc(fp);
      while(ch!=EOF)
        {
           putchar(ch);
           ch=fgetc(fp);
         }
      fclose(fp);
}
追问
警告问题解决了,但是第一个错误还是不能解决,还有就是,到时候出现相应的错误,您是怎么知道使用哪个头文件的啊?能不能赐教一下呢?在线等!
追答
if((fp=fopen("c1.txt","rt"))==0)这句在我的编译器上是可以通过的,等于null也可以的,目测是你的编译器不认得null,所以改成0,如果这也不行改成这样试试if(fp=fopen("c1.txt","rt")==0)。
exit函数是在stdlib里面定义的,一般调用系统相关的预定义函数要用stdlib.

在vs编译器里面赋值语句的值是左值,就是被赋值变量的值,但是这个不是规范规定的,所以不用vs编译器这个结果是不确定的,你可以改成这样
FILE *fp=fopen("c1.txt","rt");
char ch;
if(fp==0)
{......}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
坐标X
2015-04-07 · TA获得超过713个赞
知道小有建树答主
回答量:1139
采纳率:75%
帮助的人:639万
展开全部
if((fp=fopen("c1.txt","rw"))==null) 那个警告应该就没有了。
追问
您好,我试了一下,还是不行啊,错误依旧,还有就是rt是啥意思呢?读,还有什么属性?
追答

用r是只读属性,w只写属性  rw是可读可写。而t是文本模式打开文件。我这里可以编译运行的,你要不手动建立一下文件,这个可能有些编译器的原因造成的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式