gpt4 book ai didi

C编程获取输入

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:26:37 28 4
gpt4 key购买 nike

如何像 C++ 中的 string 类一样不断获取用户输入(字符串)直到在 C 中按下回车?

我不知道输入大小,所以我不能声明一个固定大小的变量,甚至我不能使用 malloc()calloc()< 动态分配内存

有没有办法将其作为一个单独的函数来实现?

最佳答案

正如 H2CO3 所说,您应该使用 malloc() 分配缓冲区,然后在缓冲区填满时使用 realloc() 调整其大小。像这样:

size_t bufsize = 256;
size_t buf_used = 0;
int c;
char *buf = malloc(bufsize);
if (buf == NULL) { /* error handling here */ }
while ((c = fgetc(stdin)) != EOF) {
if (c == '\n') break;
if (buf_used == bufsize-1) {
bufsize *= 2;
buf = realloc(buf, bufsize);
if (buf == NULL) { /* error handling here */ }
}
buf[buf_used++] = c;
}
buf[buf_used] = '\0';

关于C编程获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18336266/

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