gpt4 book ai didi

C Readline 函数不工作

转载 作者:行者123 更新时间:2023-11-30 19:20:10 25 4
gpt4 key购买 nike

我正在阅读关于 Objective-C 的 BigNerdRanch 书,它让我了解如何在常规 C 中将行输入到 stdin 中。出于某种原因,示例代码应该使用 readline 运行,但复制输入(小错误)不起作用。它构建成功,但在接受输入后,如果我输入 Mikey 它会显示 MMiikkeyeyy,

我得到:

(lldb) IMPLICIT DECLARATION OF FUNCTION READLINE IS Thread1:EXC_BAD_ACCESS(code=1,address=0x20000)

代码:

#include <stdio.h>

int main(int argc, const char * argv[])
{
printf("Who is cool? ");
const char *name = readline(NULL);
printf("%s is cool!\n\n", name);
return 0;
}

非常感谢任何帮助。

最佳答案

您没有包含声明 readline() 的头文件。因此编译器假定该函数返回int。这就是事故发生的原因运行时。

如果您使用 GNU readline 库,则添加

#include <readline/readline.h>
#include <readline/history.h>

到你的代码。但从你的问题来看,我假设你正在 OS X 上使用 Xcode 进行编译。OS X 有一个“libedit”库,其中有一个“readline 包装器”。在这种情况下你只需包括

#include <editline/readline.h>

重复输入(MMiikkeyyy)可能是调试器控制台的问题。如果您从命令行启动程序,它应该可以正常工作。

关于C Readline 函数不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22896418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com