我是C编程的新手,我有这个任务需要我创建一个简单的井字游戏。
我设法用数组和循环创建一个空板。现在我需要获取用户的输入,并将'X'/'O'放入棋盘。
以下是代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
//Declare the variables
//Create the board
//Initialize the board with all blanks
//Print to screen
//Prompt user for letter 'X', 'O' or 'q' to quit
//declare the variables
char board[3][4], input;
int rows, columns;
do
{
//create the board
for ( rows = 0 ; rows <3 ; rows++ )
{
for ( columns = 0 ; columns < 4 ; columns++ )
{
//Initialize array to blanks (' ')
board[rows][columns] = '|';
//print to screen
printf( "%c\t", board[rows][columns] );
}
printf("\n\n\n");
}
printf( "Hit X or O. 'q' to quit\n\n" );
scanf("%c", &input);
} while ( input != 'q' );
}//end main
任务说我可以使用这段代码fflush(stdin)
清除键盘缓冲区,我显然不知道它是什么以及如何使用它:(
我对该代码进行了一些研究,它似乎取代了现有的输入和输出。如果我错了,请纠正我。
那么我如何在目前的情况下使用fflush(stdin)
?
萨姆
答案 0 :(得分:0)
当您在这些通话之间没有使用fflush两次使用scanf时,您可能会在第二次通话时收到错误/无输入,例如因为第一个输入的输入仍然在缓冲区中。在这种情况下,scanf将返回一个空字符串。
绝对安全,你可以在每次扫描后冲洗stdin。