gpt4 book ai didi

c - 使用 C Readline 从文件而不是标准输入中读取一行

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:15 26 4
gpt4 key购买 nike

我正在使用 gcc -lreadline 的 readline 从 stdin 读取。后来,我想从文件中读取,所以我尝试了以下操作,但它仍然暂停并接受来自命令提示符的输入,而不是从文件中接受输入。这种方法有修复方法吗?


FILE* savedStdin = stdin;
stdin = fopen("someFile.txt", "r");
char* input = readline(NULL);
stdin = savedStdin;

最佳答案

readline 库实际上非常灵活,几乎可以肯定会被折磨去做你想做的事。但是,当您尝试使用 readline 从文件中读取的声明原因(在其他地方使用 readline 从控制台读取的程序中)是您不想自己管理输入缓冲区。只需使用 readline 读取控制台输入(如命令提示符),当您需要从文件中读取时,按照通常没有 readline 的方式进行,例如使用 fgets()

如果您真的不喜欢这些,可以使用一个名为 rl_instream 的全局变量,您可以修改它以使 readline 从 stdin 以外的流中读取。它的类型是 FILE* 并且记录在这里: https://tiswww.case.edu/php/chet/readline/readline.html

关于c - 使用 C Readline 从文件而不是标准输入中读取一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5767707/

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