【发布时间】:2021-10-14 12:36:49
【问题描述】:
#include <stdio.h>
char buffer[2048];
int main()
{
int a;
do {
printf("Enter an integer: ");
fgets(buffer, sizeof(buffer), stdin);
if (sscanf(buffer, "%d", &a) < 1)
printf("Invalid input\n");
} while (sscanf(buffer, "%d", &a) < 1);
return 0;
}
我正在尝试使用fgets 和sscanf 来读取来自用户的输入是创建全局缓冲区的好习惯吗?
【问题讨论】:
-
您是否有理由避免在 main 中定义缓冲区?
-
是的,我想将它用于所有功能
-
然后让它成为全局看起来很好,只要所有使用它的函数也在同一个 .c 文件中定义。如果需要访问多个文件,那么您也需要在标头中声明缓冲区。
-
我想说最好的做法是避免使用全局变量。
-
如何为所有函数创建缓冲区