scanf()関数の使い方について
はじめまして。
質問があります。
以下のコードを見てください。
----------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
char buf[256];
int y;
int m;
int d;
printf("文字列を入力してください:");
scanf("%s",buf);
i = sscanf(buf,"%d/%d/%d",&y,&m,&d); //OK
#if 0
i = sscanf(buf,"%d %d %d",&y,&m,&d); //NG
#endif
printf("日付 %d-%d-%d 戻り値i=%d\n",y,m,d,i);
return EXIT_SUCCESS;
}
----------------------------------------------------------------
標準入力から日付を表す文字列「例:"2007/04/17"」を入力してbufに
格納したものをsscanf関数の第1引数に指定して、y,m,dを表示
させてみると、「i = sscanf(buf,"%d/%d/%d",&y,&m,&d)」では、
うまくyとmとdに日付が格納される(つまり、yに2007が入り、mには
04が入り、dには17が入る。)のですが、
「i = sscanf(buf,"%d %d %d",&y,&m,&d);」でbufに格納すると、
yにはうまく格納されるのですが、他のmとdには、うまく格納してくれ
ません。これは、なぜなのでしょうか?
ご教授お願いします。
お礼
助かりました 参考になります! ありがとうございました。