2011-11-15 11 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)。

関連する問題