【发布时间】:2017-02-19 19:02:00
【问题描述】:
我是 C 新手,我正在使用 C 编程语言,我复制了 1.9,它试图打印最长的行。当我尝试在 Xcode 中构建程序时,它显示存在类型冲突的错误和表达式问题,我尝试将函数“getline”放在 main 之前,但我仍然不知道出了什么问题。
#include <stdio.h>
#define MAXLINE 1000 /* maximum input line size */
int getline(char line[ ], int marline); ----ISSUE:Conflicting types for "getline"
void copy(char to[ ], char from[ ]);
/* print longest input line*/
int main(){
int len; /* current line length */
int max; /* maximum length seen so far */
char line[MAXLINE]; /*current input line*/
char longest[MAXLINE]; /* longest line saved here */
max=0;
while ((len=getline(line[ ], MAXLINE))>0) ------ISSUE:Expected Expression
if (len>max){
max=len;
copy(longest, line); }
if (max>0) /* there was a line*/
printf("%s", longest);
return 0;}
/* getline: read a line into s, return length */
int getline(char s[ ], int lim){ ----ISSUE:Conflicting types for "getline"
int c,i;
for(i=0; i<lim-1 && (c=getchar())!=EOF && c!='\n'; ++i)
s[i]=c;
if(c=='\n'){
s[i]=c;
++i;}
s[i]='\0';
return i;}
/* copy: copy 'from' into 'to'; assume to is big enough */
void copy(char to[], char from[]){
int i;
i=0;
while((to[i]=from[i])!='\0')
++i;}
【问题讨论】:
-
请正确格式化您的代码。
-
getline 是保留功能。重命名该函数,例如:
my_getline -
while ((len=getline(line[ ], MAXLINE))>0)->while ((len=getline(line, MAXLINE))>0)。其余的,请参阅下面的答案。 -
int main(){往往不受欢迎。请改用int main ( void )或int main(int argc, char **argv)
标签: c