文字の出力で

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
elf

文字の出力で

#1

投稿記事 by elf » 17年前

初めましてelfといいます。どうしても解らない事があったので
質問させてもらいます。
まず、その前に自分はクイズみたいなものを作ろうとしているのですが
半角と全角が混じった場合の区別の仕方や「要」、「記」、「プ」で文字化けしまう事
によってプログラムが上手く働なくなってしまう事の改善方法です。
後は、空打ちした場合に次の行に行かずにそのまま入力するカーソルが動かないようにしたい事。
また、あるボタンを押したら文章を一気に表示させたい事をやりたいと思っています。
プログラムは長いので添付しました。

で txtの中身は大体こんな感じです。

test.txt
----------------------------------------------------------
標準のヘッダーファイルを取り込むための書き方として
正しいものを選択して下さい。

(1) #include "ファイル名 "
(2) #include (ファイル名 )
(3) #include {ファイル名 }
(4) #include <ファイル名 >

j
q[解説 ]
標準のヘッダーファイルは< > で囲みます。
< > で囲んだヘッダファイルは、標準インクルードファイルの格納場所から
取り込まれます。
通常は、コンパイラがインストールしてある
includeディレクトリに格納されています。q
.
.
.
.
.
.
.
.
.
第10問目



j
q[解説 ]
................................
................................
................................q


-----------------------------------------------------------
みたいな感じです。

プログラム が駄目だったので ソースに変更
記述が駄目だったので 書き方に変更
要素数 が駄目だったので・・・  わかりません。(思考中。)
ってな感じで1バイトの文字と2バイトの文字が混ざった場合の対処法が知りたい
ので教えて欲しいです。
ちなみにmain関数から
この関数を呼び出していると考えてもらって良いです。
CLSやLOCATEは 前者は画面消去 後者は文字位置指定と同じです。
では宜しくお願いします

組木紙織

Re:文字の出力で

#2

投稿記事 by 組木紙織 » 17年前

>半角と全角が混じった場合の区別の仕方や「要」、「記」、「プ」で文字化けしまう事
>によってプログラムが上手く働なくなってしまう事の改善方法です。

ということは環境(特に文字コード)を指定する必要があります。
それによってかなり実装方法が変わってくるはずですから。

たかぎ

Re:文字の出力で

#3

投稿記事 by たかぎ » 17年前

可能な限り移植性を向上させるには、

setlocale(LC_CTYPE, "");

としてから、ワイド文字(列)として入力する方法があります。
これで、完全ではないですが、主だった処理系では何とかなることでしょう。

elf

Re:文字の出力で

#4

投稿記事 by elf » 17年前

ご返信して下さったお二人方ありがとうございます。
ですが、自分では

setlocale(LC_CTYPE, "");

これを自分のプログラムのどこに組み込めば良いのか
またどんな動きをするのかいまいち自分では理解出来ないので
諦めます。

ご返信して下さったお二人方本当にありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る