[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/28 11:19 / Filesize : 97 KB / Number-of Response : 342
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.44【環境依存OK】



1 名前:デフォルトの名無しさん [2007/11/03(土) 00:20:13 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.43【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1190860744/l50
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm


47 名前:nkkn5 [2007/11/03(土) 21:49:17 ]
>>38、39 さん (再)

どうやら、うまく行っていなかったのも
isprintのせいのようです。
isprintに128以上の数値を渡すと、
0が返ってきます(私の実験です)。

---実験コード---
for (int i = 0; i <= UCHAR_MAX; i++) {
cout << setw(3) << char(i) << ' ' ;
cout << setw(3) << (isprint(i) ? char(i) : '-') << ' ' ;
cout << setw(3) << isprint(i) << ' ' ; // <--- この部分128以上では0
cout << setw(3) << dec << i << endl;
}
----------------

そのため、カタカナがでるような数値になると
私の前のコードではスペースに置き換えられて
いたために出力されていないように見えて
いたのだしょう。

つづく


48 名前:nkkn5 [2007/11/03(土) 21:50:54 ]
つづき

(訂正)
いたのだしょう--->いたのでしょう

なぜカタカナが非表示文字と判断されるのか、?です。
そういう仕様なんでしょうか。
ただ英語圏生まれのため、isprintとしては
そういうことになるのかな、とも思っております。
違いますでしょうか。

また、上記のコードを、
setlocale(LC_ALL, "");
後に実行すると、
ループ自体が128で止まってしまいます。
UCHAR_MAX自体は(表示させてみたところ)
255のまま変わっていないのですがね、、、
(こちらも?ですが、setlocaleは
私にはレベル的に早いかなーという気がします。
私の見ている本には載ってませんし。)







[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<97KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef