我有一個接受來自命令行的輸入的程序。儘管所有可用命令都是一個字符串,但其中一些命令需要輔助字符串才能進一步定義該操作。只讀一個或兩個字符串
例如「end」是一個命令,「add foo」是第二個。
我的代碼可以很好地處理2個字符串輸入,但是當我嘗試訪問單個字符串命令(如「結束」)時,程序會等待更多輸入而不是立即執行。
有沒有什麼方法可以讓程序在一行(最多可以有兩個字符串)中讀取,而不是現在的方式?
這裏就是它的當前實現:
while(1)
{
scanf("%s%s", commandString,floorPath);
if(!strcmp(commandString,"end") return;
//I've got several of these as an "if/else", but there's no
//need to reprint them here.
}
啊。這應該工作。 – 2011-04-30 02:03:48
總是指定緩衝區大小。 'scanf(「%s」)'和'gets'一樣糟糕。 – Potatoswatter 2011-04-30 03:35:10