- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:初心者です。WINAPIでの文字列の取り込みについて)
初心者でも分かるWINAPI文字列取り込みの方法
このQ&Aのポイント
- 初心者でも分かるWINAPI文字列の取り込み方法について解説します。
- WINAPIを使用してファイルから一行ずつ文字列を取り込む方法について説明します。
- 表示される文字列に含まれる半角の↑についての疑問や、特定の文字列の取り込み方法についても解説します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
もしそれが改行を意味する文字ならば、最後に付いているだけなのでこんな風にすればいいのでは? if (mon[0]) TextOut(hdc, 0, 0, mon, strlen(mon) - 1); 1文字以上だったら strlen(mon) - 1 を指定して TextOut() を動かすという意味です。 -1 しているので最後の文字は含まれなくなると思います。 これでも駄目なら mon の最後の文字をこういう風に削ってからやってみましょう。 if (mon[0]) mon[strlen(mon) - 1] = '\0'; TextOut(hdc, 0, 0, mon, strlen(mon));
その他の回答 (3)
- Trick--x--
- ベストアンサー率26% (19/72)
回答No.3
char *fgets(char *文字列, int 数値, FILE *ストリーム); 「ストリーム」に結び付けられているファイルから文字を読み込み、「文字列」に格納。 「数値」-1文字か、改行文字まで。 最後にヌル文字が追加される。 gets()と違い、"改行文字も格納される"
質問者
お礼
無事に解決できました。 ありがとうございました。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.2
fgets直後、lineの末尾に改行コードがついていませんか?
質問者
お礼
無事に解決できました。 ありがとうございました。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.1
最後の引数 (int)mon() は何を意図していますか? # それが文字列の長さなのですか? 本当に?
質問者
補足
すみません、正しくはこうです。 TextOut(hdc, 0, 0, mon, (int)strlen(mon));
お礼
ありがとうございました。自分も最初 if (mon[0]) TextOut(hdc, 0, 0, mon, strlen(mon) - 1);でやろうとしていたのですが,wsprintfでいれた他の文字が削られてしまうのでどうしようかと思っていたのですがおかげで無事格納できました。