我新的C和我努力學習不結束,這樣下去容易對我道:d計劃解析「退出」
目前我正在試圖做一個簡單的銀行賬戶控制檯應用程序。我得到了下面的代碼:
#include <stdio.h>
#include <string.h>
void parseCommand(char cmd[15], bool end) {
if(cmd != NULL) {
if(strstr(cmd, "listaccounts") != NULL) {
} else if(strstr(cmd, "addaccount") != NULL) {
} else if(strstr(cmd, "removeaccount") != NULL) {
} else if(strstr(cmd, "withdraw") != NULL) {
} else if(strstr(cmd, "deposit") != NULL) {
} else if (strstr(cmd, "exit") != NULL) {
end = true;
} else {
printf("Unknown Command: %s\n", cmd);
}
} else {
printf("cmd is null");
}
}
int main() {
printf("Welcome to the Account Management System\n");
printf("Please use one of the following commands:\n");
bool end = false;
while(true) {
printf("\tlistaccounts\n");
printf("\taddaccount\n");
printf("\tremoveaccount\n");
printf("\twithdraw\n");
printf("\tdeposit\n");
printf("\texit\n");
char cmd[15];
fgets(cmd,15,stdin);
parseCommand(cmd, end);
if(end == true) {
printf("Shutting down...");
break;
}
}
return 0;
}
但是當我鍵入「exit」節目剛剛開始在while循環,並要求新的輸入。我究竟做錯了什麼?我的猜測是我如何嘗試比較兩個字符串。
下手,你忘了,包括「stdbool.h」 – 2014-11-21 12:36:10
你從來沒有真正結束設置。你把它傳遞給一個函數,把它不改變它的值,除非它是一個指針。我建議將函數從void更改爲布爾值,然後在返回時檢查該值。 – Hashman 2014-11-21 12:36:38