メインの後ろにmainと同じ数の引数を持つ関数&が定義される前にプロトタイプを提供しました。私は同じ数の引数でgetline関数を呼び出しています。しかし、私はまだ相反するタイプのエラー&もあまりにも少ない引数のエラーを取得しています。関数の型が矛盾していて、関数呼び出しに引数があまりにも少ない
#include <stdio.h>
#define MAXLINE 1000
int getline (char line[], int maxline);
void copy (char from[], char to[]);
int main(int argc, const char * argv[]) {
// insert code here...
int len;
int max;
char currentline[MAXLINE];
char longestline[MAXLINE];
max=0;
while ((len= getline(currentline, MAXLINE)) > 0) {
if (len > max) {
max = len;
copy(currentline,longestline);
}
}
if (max > 0)
printf("Longest Line : %s",longestline);
return 0;
}
int getline (char line[],int maxline) {
int c,i;
i=0;
while((c=getchar())!='0' && (c=getchar()) !='\n') {
if (c !='\n' && i < maxline-1) {
line[i]=c;
}
}
if (c == '\n') {
line[i++]=c;
line[i]='\0';
}
return i;
}
void copy (char from[], char to []) {
int i;
i=0;
while((to[i]=from[i])!='\0')
i++;
}
コードをコンパイルするとエラーが表示されません。どのコンパイラを使用していますか?どのようにそれを実行するのですか?そして、あなたが実際にコンパイルしているコードであることを確信していますか?そのため、ファイルの異なるバージョンでは間違いがありませんか? –
POSIX関数 'getline()'には3つの引数がありますが、 'stdio.h'に宣言されています。あなたの宣言/定義はおそらくそれと矛盾しているでしょう。 – Dmitri
getline関数は、標準的なC関数ではありませんが、Linux/GCCで定義されているようです。たぶんあなたはそれと葛藤しているでしょう。 getline関数の名前を変更しようとしましたか? –