我可以将scanf用于字符串吗?

时间:2013-02-27 22:50:00

标签: objective-c

我无法使输入/输出正常工作。请帮忙。

这是我的代码......

    char choice1;

    printf("This is a text game! You will be shown what is going on");
    printf("\nand it is up to you to decide what to do.");

    printf("\n\nThere is a gem on the ground.");
    printf("\nWhat do you want to do");
    printf("\n>");


    scanf("%c", &choice1);

    if (choice1 == pick up gem) {
        printf("Got Gem");
    }

1 个答案:

答案 0 :(得分:3)

%c用于输入单个字符,而不是字符串。如果您想允许用户输入多个字符,那么您需要以下内容:

char string[256];
fgets(string, 255, stdin);

if (strcmp(string, "pick up gem\n") == 0) {
    printf("Got Gem");
}

BTW - 这不是Objective-C,这是C。

如果用户输入超过256个字符,则会发生不好的事情。

更新:事实证明scanf只抓取输入的第一个字。使用fgets读取换行符。