2010-11-03 77 views

回答

8

您可以在多個號碼與scanf函數

閱讀
int a, b, c; 
scanf("%d %d %d", &a, &b, &c); 
+0

只是想補充一點,格式字符串中的空格(即:「%d%d%d」)對用戶如何分隔3個整數沒有實際影響。 scanf將「吃」分隔整數的任何空格(空格,製表符等)。 – 2010-11-03 03:53:31

+0

非常真實,但我喜歡爲了可讀性而放置空白區域。 – 2010-11-03 04:05:43

4

你試過:

scanf("%d %d %d", &num1, &num2, &num3); 

那將工作得很好,如果你知道你只想要三個。如果你想要一個可變數目,你需要做一個循環,是這樣的:

#include <stdio.h> 

int main (void) { 
    int i, ch, rc, val, count; 

    // Loop until we get a valid number. 

    rc = 0; 
    while (rc != 1) { 
     printf ("Enter count: "); fflush (stdout); 
     rc = scanf(" %d", &count); 

     // Suck up all characters to line end if bad conversion. 

     if (rc != 1) while ((ch = getchar()) != '\n'); 
    } 

    // Do once for each number. 

    for (i = 1; i <= count; i++) { 
     rc = 0; 
     while (rc != 1) { 
      printf ("\nEnter #% 2d: ", i); fflush (stdout); 
      rc = scanf(" %d", &val); 
      if (rc != 1) while ((ch = getchar()) != '\n'); 
     } 
     printf ("You entered %d\n", val); 
    } 

    return 0; 
} 

運行這給你:

Enter count: 5 

Enter # 1: 10 
You entered 10 

Enter # 2: 20 
You entered 20 

Enter # 3: 30 
You entered 30 

Enter # 4: 40 
You entered 40 

Enter # 5: 99 
You entered 99 
相關問題