2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

プログラミング詳しい奴来い下さい

1 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:28:27.74 ID:4tCps+qw0.net
引数とかはは省略します

scanf("%s =%d") 入力:id =1 (スペース複数) 

scanf("%d%d")  入力:1 2(スペース複数)
この2つは期待通りの動作をして


scanf("%s=%d") 入力:id =1(スペース複数)
これは期待通りの結果にならないのなんでですか

2 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:29:42.69 ID:BeZ4LwBD0.net
は?

3 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:30:26.59 ID:4tCps+qw0.net
スペース1個になっちゃった

4 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:31:10.35 ID:0sECnpAe0.net
何をしたいのお前

5 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:32:08.95 ID:0Gr+FFN70.net
          .         __,..--,、
   x             ´ /`"´`iヽ.
`ヽ     、         j {  o゙;.:.:!
    ヽ、ノ、 x       ハ  _/.:.:.:.!
     ノ  \     /\`´ ゞ-;.:.l
     ) ,. '⌒゙  r-ゞ/-,  7´ {;,/|
     ヽ/     ヽ彡 ´   //:::j  _l
         X    _f   /f:::::/ i:.:/
   X       ゞノ.  / !;;ノ,.:':./
        __  /  /   _ノ:/|
       {ミヽ,>‐`'′  ,.-:://_,ノ ,
      }ニヾ_  __r="/」'-'"  X
      ゝ=-'" ̄  " ̄   /
         x          /

6 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:32:30.06 ID:6qMgBsvF0.net
ちゃんと書けよ

7 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:32:54.76 ID:BeZ4LwBD0.net
あぁ、確かscanfは余計な文字入れたらバグるはず
%dとかしか書いちゃダメ

8 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:35:15.15 ID:4tCps+qw0.net
ちょっといでおんにかいてくる

9 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:39:20.93 ID:fYryVWsi0.net
伝説巨神

10 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:39:41.31 ID:4tCps+qw0.net
https://ideone.com/YlEulz

11 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:43:28.21 ID:Dxl1z+8a0.net
>>7
んなこたぁない

12 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:43:43.98 ID:BeZ4LwBD0.net
何がしたいの?

13 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:45:44.65 ID:0sECnpAe0.net
期待通りの結果を書け

14 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:51:00.97 ID:4tCps+qw0.net
期待通りの結果はいでおん見てもらえれば

なんていうんだろう最初のやつはフォーマット指定子の間の空白が1つでいい意味が分からない
"id"まで読んで次のスペースを見つけたらそれを読み捨ててbにidを格納するであってる?
そしたら残ったスペースの扱いは読み飛ばされて=以降を次で読んでるの?

15 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:55:13.71 ID:7W4Zezfs0.net
man scanf

16 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:56:11.51 ID:uk/5ebLC0.net
scanfは結構難しいよなー

17 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:57:00.09 ID:yYLPBfjV0.net
scanfは無駄にややこしい

18 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 17:58:30.11 ID:4tCps+qw0.net
3番目でスペースが複数でもちゃんと読まれるのが分かるけどだとしたら
2番目がおかしくなる理由が分からん

19 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:03:32.29 ID:yYLPBfjV0.net
中開けて見てみるのが早いんだろうけどPC使えナイツ

20 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:03:50.03 ID:k29ugnv60.net
>>18
manページ見てみた?

21 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:08:34.28 ID:4tCps+qw0.net
??フォーマット文字列にスペース入れとけばスペースなくても何個あっても対応しますよーってこと?

22 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:10:45.76 ID:6LQctnnEi.net
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/scanf.3.html
ここの途中に書いてあるよ

23 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:17:53.83 ID:4tCps+qw0.net
>>22
ありがとう今読んでる

2番目の%d指定子の引数を0で初期化したら表示も0になった。
入力が%s指定子で終わってるのか

24 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:18:53.42 ID:6LQctnnEi.net
>>21
format文字列中のスペースはisspaceがtrueを返す文字に該当する文字の0こ以上の連続を意味するっぽいね

25 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:20:11.06 ID:V8psDivd0.net
んーcの規格書の方が分かりやすいかな?

c言語 規格書でググって
7.19.6.2 fscanf読んでみ

IE以外だと見れないかもだが

26 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:31:21.75 ID:BeZ4LwBD0.net
%sはスペース(\0と同じ扱い)のところまでを読み込んでる
つまりidまで読み込んでて、
そこから「 =%d」の空白部分が連続した空白を読み飛ばしてくれている。
それで「=」で「=」を読み飛ばして最後に%dにcが入る
二つ目のsscanf(a, "%s=%d", d, &e);はスペースの部分を読み飛ばせていないからその分のゴミが残ってて結果がおかしくなる
ってことでおk?

27 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:40:27.71 ID:4tCps+qw0.net
>>26
かなぁ
ファーマット文字列に空白を入れない→空白で読み込み終了
空白を入れる→次に空白以外の文字がでてくるか読み込み負荷まで読み込む

だから2番目は=が期待されるとことが空白だったから終了したのかな

28 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:43:54.88 ID:4tCps+qw0.net
ともあれ分かったつもりになったよ皆ありがとう

29 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:44:00.22 ID:3Gio6aRa0.net
おーるおっけーですか?

30 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:46:59.11 ID:3Gio6aRa0.net
しかしここまで仕様理解して使ってる人ってどれ位いるんだろう

または理解してなくても
使う時は調べて理解してから使う人

31 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:48:36.89 ID:6LQctnnEi.net
scanfってあんまり使う機会がないんだけどみんな使うの?

32 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:53:56.28 ID:4tCps+qw0.net
>>31
最初>>1に書くときに面倒だからscanfにしたけど実際使ってるのはsscanfです

33 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:57:11.59 ID:BeZ4LwBD0.net
使う機会がまずない

34 :以下、\(^o^)/でVIPがお送りします:2014/05/08(木) 18:59:43.01 ID:pJtswPFV0.net
ちゃんと使えれば有用なんだろうけどな

ただちゃんと仕様を把握している人間が極少ないもんを
使うのはどうかという点はある

総レス数 34
7 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★