Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1844011
  • 博文数量: 323
  • 博客积分: 5970
  • 博客等级: 大校
  • 技术积分: 2764
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-03 23:13
文章分类

全部博文(323)

文章存档

2018年(2)

2017年(11)

2016年(10)

2015年(27)

2014年(2)

2013年(30)

2012年(197)

2011年(44)

分类: LINUX

2012-05-02 23:35:18

操作系统:rhel6
编译环境:gcc-4.4.4
源代码如下:

点击(此处)折叠或打开

  1. #include "stdio.h"

  2. #define MAXLEN    1000    /*maximum characters of input length line*/
  3. /*从输入的信息行内,找出最长的行,并且输出*/

  4. main()
  5. {
  6.     int getline(char cur__line[],int max);
  7.     void copy(char max_line[],char cur_line[]);
  8.     int len,max;
  9.     char cur_line[MAXLEN];    /*save the current lines*/
  10.     char max_line[MAXLEN];    /*save the max maximum lines*/
  11.     
  12.     len=max=0;
  13.     while((len=getline(cur_line,MAXLEN))>0)
  14.         if(len>max){
  15.             max=len;
  16.             copy(max_line,cur_line);
  17.         }
  18.     if(max>0)    /*this line is exist*/
  19.         printf("%s",max_line);
  20.     return 0;
  21. }
  22. /*read a line into cur_line;    return length*/
  23. int getline(char cur_line[],int max)
  24. {
  25.     int ch,count;

  26.     printf("input a few lines:\n");
  27.     for(count=0;count<max-1 && (ch=getchar())!='$' && ch!='\n';count++)
  28.         *(cur_line+count)=ch;
  29.     if(ch=='\n'){
  30.         *(cur_line+count)=ch;
  31.         count++;
  32.     }
  33.     *(cur_line+count)='\0';
  34.     return count;
  35. }
  36. /*copy: copy 'from' into 'to' ;assume to is big enough*/
  37. void copy(char to[],char from[])
  38. {
  39.     int count;
  40.     
  41.     for(count=0;(*(to+count)=*(from+count))!='\0';count++)
  42.     ;
  43. }

报错如下:
Press ENTER or type command to continue
读入文本行并输出最长行.c:7: error: conflicting types for ‘getline’
/usr/include/stdio.h:673: note: previous declaration of ‘getline’ was here
读入文本行并输出最长行.c:29: error: conflicting types for ‘getline’
/usr/include/stdio.h:673: note: previous declaration of ‘getline’ was here

报错原因:
在studio.h头文件内,已经包含了getline函数,而我们又重新定义了一个getline函数,所以会提示定义的函数冲突
处理方案:
将我们自己定义的函数改个名字,如get_line(),问题解决

阅读(4530) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~