2013-09-25 100 views
2

我想讀下面的輸入scanf的分離:Ç如何讀取輸入用逗號

10 0 y 
2 
2, 80, 40, 0 

這應該是由scanf函數準備從一個單獨的文件。

我可以只是做以下獲得前兩行沒有逗號:

scanf("%d %d %c %d", a1, a2, a3, c1, a4); 

我如何將能夠讀取由逗號分隔的第三線和存儲那些在我的變量?

+0

這不是你真正的'scanf'例子,是嗎? –

回答

8

你可以只包含逗號在scanf格式字符串:

int blinky, pinky, inky, clyde; 
scanf("%d, %d, %d, %d", &blinky, &pinky, &inky, &clyde); 

下面是根據您的問題,一個完整的例子:

#include <stdio.h> 

int main(void) 
{ 
    int a1, a2, a4; 
    int blinky, pinky, inky, clyde; 
    char c3; 

    scanf("%d %d %c %d %d, %d, %d, %d", &a1, &a2, &c3, &a4, &blinky, &pinky, &inky, &clyde); 
    printf("%d %d %c\n%d\n%d, %d, %d, %d\n", a1, a2, c3, a4, blinky, pinky, inky, clyde); 

    return 0; 
} 

,並建立和測試:

$ cat input 
10 0 y 
2 
2, 80, 40, 0 
$ make example 
cc  example.c -o example 
$ ./example < input 
10 0 y 
2 
2, 80, 40, 0 
+2

+1。我希望我能夠再次投票贊成var-names = P – WhozCraig

+0

scanf(「%d%d%c%d%d,%d,%d,%d」,&罰,&numberDropped,&stat,&numOfAssignments, &assignmentNumber,&studentScore,&weight,&daysLate);這是我所做的,我可以打印除最後3個整數值之外的所有內容。 4 80和0. – user2817240

+0

@ user2817240,那麼你正在做其他事情不對。我會在我的答案中提供一個完整的例子。 –