如何从用户那里获取输入时摆脱缓冲区溢出?通过使用fgets还是scanf?如果fgets,那么它如何防止。初学者需要一些解释。
#include <stdio.h>
#include <stdlib.h>
int main(){
char choice[5];
char one='1', two='2', three='3';
printf("%c. Create new account\n",one);
printf("%c. Update information of existing account\n",two);
printf("%c. For transactions\n",three);
printf("Enter your choice: ");
// fgets(choice, sizeof choice, stdin); // This OR
scanf("%s",choice); // This one
printf("Here is your choice: %s", choice);
return 0;
}
难道不是那么容易,但是您可以(不是100个安全的解决方案)通过在格式说明符前加上const文字或数字来限制scanf:
scanf("%3s", choice);