我收到函数 getline 中类型冲突的错误。我在两个函数声明语句中的变量和函数类型都是一致的,所以不知道是什么问题。
#include <stdio.h>
int getline(char line[]);
int main()
{
char line[100];
int len;
while ((len = getline(line)) > 0)
printf("%d\n", len);
}
int getline(char line[])
{
int i, c;
for (i = 0; (c = getchar())!=EOF && c!='\n'; ++i)
line[i] = c;
if (c == '\n'){
line[i] = c;
++i;
}
line[i] = '\0';
return(i);
}
最佳答案
您的编译器似乎配置为使用 POSIX 标准,在 POSIX 环境中,getline()
已经在 stdio.h
中原型(prototype)化为
ssize_t getline(char **lineptr, size_t *n, FILE *stream);
这与您的声明/定义冲突。
使用不同的函数名称(例如:my_getline()
或类似名称)。
关于c - 如何解决c中的冲突类型错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55861379/