トップページ > プログラム > 2016年07月12日 > N9hLb2lJ0

書き込み順位&時間帯一覧

13 位/191 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000002001000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ 5b7b-Cxy9)
C言語なら俺に聞け 136 [無断転載禁止]©2ch.net

書き込みレス一覧

C言語なら俺に聞け 136 [無断転載禁止]©2ch.net
25 :デフォルトの名無しさん (ワッチョイ 5b7b-Cxy9)[sage]:2016/07/12(火) 15:04:51.20 ID:N9hLb2lJ0
>>21
fgets()は終端文字を自動的に入れるので
1行目と3行目の全く同じ(しかも間違っている)処理はそもそも不要
入力が256バイト以上でも255バイトまで書き込んで最後に終端を置く

char s[] = "abcde";
であればstrlen(s)の結果は5、終端を入れるべきはs[5]、つまり同じ位置
そしてstrlen(s)はそもそも正しく終端されていなければ正しい結果を返せない
よって不要な処理

前の人の言う通りbufの定義(二次元配列?)かfgets()への指定が間違っていると思われる
C言語なら俺に聞け 136 [無断転載禁止]©2ch.net
26 :デフォルトの名無しさん (ワッチョイ 5b7b-Cxy9)[sage]:2016/07/12(火) 15:45:48.25 ID:N9hLb2lJ0
読み直して思ったけどもしかして改行文字を削除したいのか
終端の1文字前が改行と決め打ちする発想がなかったので全く気付かなかった
CR+LFの処理系もあるし前述の通り255バイト+終端のケースでは単に破壊することになる
strrchr使うなり後ろからポインタ回すなりして\r\nを探そう
C言語なら俺に聞け 136 [無断転載禁止]©2ch.net
32 :デフォルトの名無しさん (ワッチョイ 5b7b-Cxy9)[sage]:2016/07/12(火) 18:16:54.85 ID:N9hLb2lJ0
>>30
https://paiza.io/projects/Nka7ld65WDSimDBx7ltj_A

できるだけ丁寧に書いたつもりなので何をどうしてるか処理を追ってみて


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。