• 締切済み

sscanf エラー

sscanfで整数が読み込めません。 コマンドプロンプトの画面は以下のようです。 文章を入力してください。 aaaa 11 14 aaaa 4201776 4201870 1 以下が実行したコードです。 #include<stdio.h> int main(void){ int a,b,c,i; char name[20]; printf("文章を入力してください。\n"); scanf("%s",x); c=sscanf(x,"%s %d %d",name,&a,&b); printf("%s %d %d %d\n",name,a,b,c); return(0);} aaaa 11 14と表示されるように、御指摘おねがいします。

みんなの回答

  • heburusu
  • ベストアンサー率85% (140/164)
回答No.1

こんにちわ。 参考URLの”空白、タブの読み飛ばし”の部分を読んで頂けると分かると思いますが、 通常scanfは空白を区切り文字として扱います。 >scanf("%s",x); そのため、ここで変数xに入る内容は"aaaa"だけとなります。 参考URLに以下の回避方法が記載されています(改行文字以外を対象とする指定)。 >scanf("%[^\n]", x); 入力の取得をscanfにこだわらないのでしたら、gets関数を使って入力1行を取得するようにするほうが簡単かと思います。 >gets(x);

参考URL:
http://ja.wikipedia.org/wiki/Scanf
situmonn9876
質問者

お礼

お返事ありがとうございます。