【发布时间】:2013-12-18 14:20:52
【问题描述】:
我需要在 C 中使用getline(),但是当我写的时候:
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char** argv) {
char *line;
getline(&line, NULL, stdin);
free(line);
return (0);
}
编译器写error: getline was not declared in this scope 我能做什么? getline 不是在stdio.h 中声明的吗?我以前从来没有遇到过这种问题。
我使用 GCC GNU 编译器。
【问题讨论】:
-
不是来自 std 的 getline 吗?试试
std::getline。另外,getline 声明在#include <string>. -
错误:getline 不是 std 的成员
-
@wendelbsilva;
getline的标头是<stdio.h>。 -
@wendelbsilva 这是一个 C 问题而不是 C++。
-
我看到您的问题已被多次编辑。您现在使用
gcc为我编译的代码没有错误,没有其他选项。顺便说一句,如果std::getline导致错误“getline 不是 std 的成员”,那么您将代码编译为 C++。使用 C 编译器编译 C。(使用gcc,而不是g++,并使用.c后缀命名您的源文件。)