gpt4 book ai didi

c - 是否有任何函数可以从标准输入中获取无限输入字符串

转载 作者:太空狗 更新时间:2023-10-29 17:07:39 26 4
gpt4 key购买 nike

条件是:

我想从标准输入输入一行,我不知道它的大小,可能很长。

scanf 之类的方法,gets 需要知道您可以输入的最大长度,以便您的输入大小小于您的缓冲区大小。

那么有什么好的处理方法吗?

答案必须只用 C,不是 C++,所以 c++ 字符串不是我想要的。我想要的是 C 标准字符串,类似于 char* 并以 '\0' 结尾。

最佳答案

C 标准没有定义这样的函数,但是 POSIX 定义了。

getline 函数,documented here (或者如果您使用的是类 UNIX 系统,则通过键入 man getline)可以满足您的要求。

它可能不适用于非 POSIX 系统(例如 MS Windows)。

一个演示其用法的小程序:

#include <stdio.h>
#include <stdlib.h>
int main(void) {
char *line = NULL;
size_t n = 0;
ssize_t result = getline(&line, &n, stdin);
printf("result = %zd, n = %zu, line = \"%s\"\n", result, n, line);
free(line);
}

fgets 一样,'\n' 换行符留在数组中。

关于c - 是否有任何函数可以从标准输入中获取无限输入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27466407/

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