gpt4 book ai didi

c - 使用 C 的简单程序编译错误, 'Too few arguments' 为 'fgets'

转载 作者:行者123 更新时间:2023-11-30 21:33:28 25 4
gpt4 key购买 nike

我正在从教科书中学习 C,但不明白为什么它不能编译。 Code::Blocks 指出“fgets”处的参数太少。我假设“缓冲区”将键盘输入存储到 volatile 内存中,并且 fgets 应该等待来自输入和 Enter 的参数。

如果可能的话,非常感谢任何帮助和/或解释!谢谢

/*ex02-05.c*/
#include <stdio.h>
#include <string.h>
int main(void)

{
char buffer[256];
printf("Enter your name and press Enter:\n");

fgets(buffer);

printf("\nYour name has %d characters and spaces",
strlen(buffer));

return 0;
}

最佳答案

fgets()需要 3 个参数。这是原型(prototype):

   char *fgets(char *s, int size, FILE *stream);

所以改变

fgets(buffer);

fgets(buffer, sizeof buffer, stdin);

另外,请注意,如果缓冲区有足够的空间,fgets() 将读取换行 字符。如果这是您不想要的,那么您可以使用以下命令将其删除:

buffer[strcspn(buffer, "\n")] = 0;
<小时/>

根据@Sebastian的建议,您还可以使用#define大小:

#define SIZE 256

int main(void)
{

...
fgets(buffer, SIZE, stdin);
}

关于c - 使用 C 的简单程序编译错误, 'Too few arguments' 为 'fgets',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38555452/

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