2011-11-15 61 views
1

我試圖找出一種方式,這時候數據是像這樣的輸入:一種處理這種輸入的方法?

Name Integer 
Name Integer 
Name Integer 
. 

每個名稱和整型被輸入,並檢測到新行時間,東西與該名稱做,整數,然後再一次,直到'。'被檢測到。

我試過getchar()循環和IF語句檢測'\n'例如,但似乎沒有工作。有任何想法嗎?

+0

你爲什麼不嘗試使用scanf(「%d \ n」,&myvar)? –

+0

你可以發佈一些你的嘗試,爲什麼他們不工作? –

+3

或者'fgets'和'sscanf'的組合? –

回答

0
scanf("%s%d\n", name, &intVar); 
if((*name=='.') && (*(name+1)=='\0')){ 
return 0; 
} 

這應該是足夠了

0

如何:

#include <string.h> 
#include <stdio.h> 

int main() 
{ 
    char input[30]; 
    gets(input); 
    while(strcmp(input, ".") != 0) 
    { 
     // do stuff 
     gets(input); 
    } 
    return 0; 
} 
0

不要直接使用scanf。令人驚訝的是很難使用。最好閱讀整行輸入(例如,用fgets),然後解析它(可能用sscanf)。

相關問題