C语言解决scanf()函数读取输入导致的换行符问题
C语言解决scanf()函数读取输入导致的换行符问题
在C语言中,使用scanf()函数读取输入时,经常会遇到因为换行符导致的问题。例如,在读取玩家的选择后,可能会因为换行符残留在输入缓冲区中,导致程序无法正常运行。
为了解决这个问题,您可以使用 fgets 函数来读取玩家的选择,并将其转换为整数。
以下是修改后的代码:c#include <stdio.h>#include <stdlib.h>#include <string.h>
int main() { char input[100]; int player1, player2; printf('玩家1,请选择: '); printf('1. 石头 '); printf('2. 剪刀 '); printf('3. 布 '); fgets(input, sizeof(input), stdin); player1 = atoi(input); printf('玩家2,请选择: '); printf('1. 石头 '); printf('2. 剪刀 '); printf('3. 布 '); fgets(input, sizeof(input), stdin); player2 = atoi(input); switch (player1) { // ... 省略其余部分 ... } return 0;}
通过使用 fgets 函数读取输入,并将其转换为整数,我们可以避免因为换行符导致的问题。同时,使用 atoi 函数将字符串转换为整数。这样可以确保正确读取玩家的选择,并进行后续的比较。
原文地址: https://www.cveoy.top/t/topic/SFM 著作权归作者所有。请勿转载和采集!