你能为字符分配一个默认名称而不用 scanf 在 c 中吗?



我试图让我的游戏更具互动性,玩家输入他们的名字并玩。有没有办法做到这一点,如果没有玩家 2,char player2 可以得到一个默认名称?

#define DEF "CPU"
printf(" Enter name for Player 1:n");
scanf(" %s", &player1 );
printf("Is there a Player 2? [y/n]");
scanf(" %c", &mult);
if( mult == y){
    printf("Enter name for Player 2:n");
    scanf(" %c", &player2);
}else{
    printf(" The CPU will be your opponent!n");
    &player2 = DEF ;
}

这应该适合您:

#include <stdio.h>
#include <string.h>
#define DEF "CPU"
void clean_stdin(void) {
    int c;
    do {
        c = getchar();
    } while (c != 'n' && c != EOF);
}
int main() {
    char player1[20], player2[20];
    char mult;

    printf("Enter name for Player 1:n>");
    fgets (player1, 20, stdin);
    clean_stdin();
    printf("Is there a Player 2? [y/n]:");
    scanf(" %c", &mult);
    clean_stdin();
    if(mult == 'y') {
        printf("nEnter name for Player 2:n>");
        fgets (player2, 20, stdin);
    } else {
        printf("nThe CPU will be your opponent!n");
        strcpy(player2, DEF);
    }
    printf("nnPlayer 1: %snPlayer 2: %s", player1, player2);
    return 0;
}

相关内容

最新更新