- 締切済み
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と表示されるように、御指摘おねがいします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- heburusu
- ベストアンサー率85% (140/164)
回答No.1
こんにちわ。 参考URLの”空白、タブの読み飛ばし”の部分を読んで頂けると分かると思いますが、 通常scanfは空白を区切り文字として扱います。 >scanf("%s",x); そのため、ここで変数xに入る内容は"aaaa"だけとなります。 参考URLに以下の回避方法が記載されています(改行文字以外を対象とする指定)。 >scanf("%[^\n]", x); 入力の取得をscanfにこだわらないのでしたら、gets関数を使って入力1行を取得するようにするほうが簡単かと思います。 >gets(x);
お礼
お返事ありがとうございます。