c - 如何解决c中的冲突类型错误?

标签 c getline

我收到函数 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/

相关文章:

C++ getline(), 第二次运行这个函数不起作用

c++ - 棘手的子串问题

c++ - 如何在 C++ 中使用 ',' 作为 getline 分隔符

c - 我无法理解以下代码中的位置 c=0 和 l=0

c - 我在 C 中很难使用 sscanf 和 fscanf

c - 将文本基本传输到 C 中的结构程序。为什么我总是得到奇怪的输出?

c++ - 无法找到请求的 Boost 库 Windows Cmake

c - 循环中 printf 的 Getline 行为

c - MSP430 上的摩尔斯电码输入

c++ - C++ 和 cin.getline 的问题