2012-06-12 53 views
1

我想根據用戶輸入的數值來輸入,而不會期待確切數量的值。如何在事先不知道輸入值的情況下設計輸入?

在我的程序中,我希望用戶輸入整數,但問題是我想允許用戶輸入一個或兩個空格分隔的整數。

因此,如果用戶輸入兩個空格分隔的整數,它們應該存儲在變量a和b中,並且如果他在輸入之前輸入一個數字,那麼它應該存儲在a中,並且程序應該進一步進行而沒有等待爲第二個數字。

這樣做的最好方法是什麼?

回答

2

嘗試將整個輸入視爲字符數組,而不是像您希望的那樣解析它。

1

您應該使用fgets()作爲字符串讀取整行,然後解析爲您需要的整數。

2

想想你會怎麼做你自己,然後把它轉換成代碼:

  • 獲取從輸入
  • 線Tokenise它用空白
  • 檢查令牌是整數可以將其轉換
2

看起來你可以用scanf輕鬆地做到這一點:

int a,b; 
char c[1]; 
int n = scanf("%d%0[ ]%d",&a,&c,&b); 

僅當它被空格分隔時纔會讀取b,因此它將停在換行符處。

n將包含讀取的字段數(包括分隔符)。

我不確定它是完全有效的還是跨平臺的。在將它放入任何嚴肅的程序之前,您應該檢查文檔。

相關問題