2013-02-27 74 views
-1

我不能讓輸入/輸出正常工作。請幫忙。我可以使用scanf作爲字符串嗎?

這裏是我的代碼...

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"); 
    } 
+4

「現在有人如何在Objective-C中製作文字冒險遊戲嗎?」 -是。 – 2013-02-27 22:50:46

+0

什麼是「拾取寶石」?你的主題與你的問題沒什麼關係。 – Mahesh 2013-02-27 22:51:20

+0

也許你需要取消輸入的單詞? – 2013-02-27 22:53:14

回答

3

%c是用於輸入一個字符,而不是一個字符串。如果你想允許用戶輸入多單字符,那麼你需要的是這樣的:

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

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

順便說一句 - 這是不客觀的-C,這是C.

和壞的事情會發生,如果用戶輸入超過256個字符。

更新:事實證明,scanf只抓住輸入的第一個單詞。使用fgets可以讀取換行符。

+0

好的,謝謝,但是這個工作在objective-c中嗎? aslo我嘗試使用字符串輸入,但我似乎無法找到一個scanf%的字符串。 – codegeek511 2013-02-27 22:58:08

+0

「串」是什麼意思?像我在我的答案('%s')或Objective-C(真正的Cocoa)'NSString'中使用的C字符串?是的,因爲Objective-C是C的超集,所以這段代碼在Objective-C中可以正常工作。 – rmaddy 2013-02-27 22:59:15

+0

通過字符串我的意思是說NSString等等等等等,然後說scanf(「%然後應該去下一個。 – codegeek511 2013-02-27 23:01:40

相關問題