fgets()結果の改行要らないんだけど
Cの文字列処理がよく分からん。
fgets()してみたら改行が最後に入っててうざかったから
char buf[20], *p; fgets(buf, 20, stdin); for (p = buf; *p != '\0'; p++) ; p--; *p = '\0';
とかやって消したんだけど、バカっぽい。
普通どうするの?fscanf()?
追記
id:yshigeruさんの指摘はこういう感じかな。
char buf[20], *p; fgets(buf, 20, stdin); p = buf + strlen(buf) - 1; *p = '\0';
まぁこれなら見なかったことに出来なくはないかなぁ…。
追記2
id:kazuhookuさんとsodaさんからツッコミを頂いたので、ちゃんとエラーチェックなどやってみる。
char buf[20], *p; if (fgets(buf, 20, stdin) == null) { printf("err\n"); return 1; } p = buf + strlen(buf) - 1; if (*p == '\n') *p = '\0';