C语言及C++的问题

2025-05-21 12:57:49
推荐回答(2个)
回答1:

对于你上面说道的问题,一般程序员会开辟一个空间较大的字符缓冲区,读入后把字符串拷贝到c里面。

但是任何程序如果死劲玩都能玩出bug。所以对于这种问题,最好约束用户,而不是完美程序。

回答2:

用fgets函数来代替,它的第二个参数就可以限定缓冲区的大小,第三个参数应该指定为标准输入设备stdin

char *fgets(char *str, int n, FILE *stream);

所以你的程序可以这样写:

char c[5];
fgets(c,5,stdin);
printf("%s\n",c);