我想根據用戶輸入的數值來輸入,而不會期待確切數量的值。如何在事先不知道輸入值的情況下設計輸入?
在我的程序中,我希望用戶輸入整數,但問題是我想允許用戶輸入一個或兩個空格分隔的整數。
因此,如果用戶輸入兩個空格分隔的整數,它們應該存儲在變量a和b中,並且如果他在輸入之前輸入一個數字,那麼它應該存儲在a中,並且程序應該進一步進行而沒有等待爲第二個數字。
這樣做的最好方法是什麼?
我想根據用戶輸入的數值來輸入,而不會期待確切數量的值。如何在事先不知道輸入值的情況下設計輸入?
在我的程序中,我希望用戶輸入整數,但問題是我想允許用戶輸入一個或兩個空格分隔的整數。
因此,如果用戶輸入兩個空格分隔的整數,它們應該存儲在變量a和b中,並且如果他在輸入之前輸入一個數字,那麼它應該存儲在a中,並且程序應該進一步進行而沒有等待爲第二個數字。
這樣做的最好方法是什麼?
嘗試將整個輸入視爲字符數組,而不是像您希望的那樣解析它。
您應該使用fgets()
作爲字符串讀取整行,然後解析爲您需要的整數。
想想你會怎麼做你自己,然後把它轉換成代碼:
看起來你可以用scanf
輕鬆地做到這一點:
int a,b;
char c[1];
int n = scanf("%d%0[ ]%d",&a,&c,&b);
僅當它被空格分隔時纔會讀取b
,因此它將停在換行符處。
n
將包含讀取的字段數(包括分隔符)。
我不確定它是完全有效的還是跨平臺的。在將它放入任何嚴肅的程序之前,您應該檢查文檔。