我的代碼假設循環執行一個命令,然後執行命令,直到命令退出。當它運行時,我得到一個永無止境的循環。循環查詢命令
void run(){
char command[100][100], *p;
int numOfArgs;
while(1){
p=&command[0][0];
numOfArgs = 0;
while(getchar()!= '\n'){
while(getchar()!= ' '){
*p=getchar();
p++; //increased to next char in string
}
*p='\0';
numOfArgs++; //increases number of strings
p=&command[numOfArgs][0]; //References p to location 0 of next string
}
if(strcmp(command[0], "/*command*/") == 0){
//Do command
}
if(strcmp(command[0], "exit") == 0)
return;
else printf("Not a valid command");
}
}
注意:除了'command [0]'之外,你永遠不會看任何東西,而且你也從來沒有改變過它。 – crashmstr
爲什麼你要逐個字符地使用命令而不是使用'scanf'? –
&command [0] [0]是一個非常奇怪的語法(雖然正確)。爲什麼不使用簡單的命令[0]呢? – fayyazkl