
No.5ベストアンサー
- 回答日時:
>プログラムで強制的に入力モードの変更はできないものでしょうか?
IMM系のAPIでできそうだと思ったのですが、試したところうまく動作しませんでした。DOS窓上では無理なのか、私のスキルが足りないのかはわかりませんが...。(IMM系APIについては「猫でも...」の「Windows SDK編」の278章から書いてあります。) そこで、ちょっとズルをして、キーボード入力をソフト的に送る方法を考えました。おそらくwahhahha_2002さんの環境でも動作すると思うので試してみてください。(なお、インデントに全角スペースを使用しています。コピーして使う場合はタブにでも置き換えてください)
-----------------------------------------------
#include <stdio.h>
#include <windows>
/* Alt + [半角/全角] */
void ChangeMode(void)
{
keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_KANJI, 0, 0, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
return;
}
int main()
{
char buf[256];
ChangeMode();
printf("好きな言葉を入力してください:");
scanf("%s", buf);
printf("あなたは「%s」と入力しました。\n", buf);
ChangeMode();
return 0;
}
gimmickさん、ありがとうございます。
アドバイスのソースをBorland C++で、早速コンパイルしてみました。
すると、エラーの続出。
自分は、超・超・初心者なので3分くらい理解できませんでした。
エラーを確認すると、ソースの毎行にあります。
ん? ’ ’が不正文字?
もう一度アドバイスを読み返し、「インデント」「タブ」を調べました。
「なんで、CのソースにHTMLのタブが?」
いやー、申し訳ない。わかりました。
早速、空白を調べて削除し、全角の空白から半角の空白に変更したところ、
見事、成功! 早速使わせていただきます。
本当にありがとうございます。重ねて御礼を申し上げます。
No.4
- 回答日時:
私の知る限りでは無理っぽいかも・・・ですね・・・。
強制的ではなく、そのプログラム使用者が入力する時に、
プリント文で日本語入力を促すような注意書きのようなものを示しておく
では駄目ですか?
「日本語入力をする場合は」
「WINDOWS9x使用の方は[Alt] と [全角/半角]」
「WINDOWSNT系使用の方は[Alt]と[半角/全角]で変更できます。」
・・・というような感じに。
必ず出来ない・・・とは私の知識範囲内ではいえませんが、
プログラムは「簡略化」が大事な事なのでコレはコレでいいと思います。
(駄目?(^^;;)
もしかしたらWINDOWSの環境変数やメモリなんかから読み込んで・・・
なんてことが出来るかもしれませんが、
かなり難しい処理になってしまうのではないでしょうか?
abonさん、私の質問にお答えくださいまして ありがとうございます。
子供向けのパソコンと遊ぶプログラムを作成しようとしていましたが、この「日本語入力」のところでつまづいてしていました。CやC++は、自分には無理なのかな?と諦めかけていたところです。
abonさんの親切・丁寧なアドバイスが、今励みとなりました。
No.3
- 回答日時:
既に回答がされていますが、scanfでの日本語入力には特別な処理は必要ありません。
WindowsMeのDOS窓で入力するのであれば、「Alt + 全角/半角」で日本語モードにしてから入力してください。ご親切なアドバイスをありがとうございます。
ご指示通りの方法で、できました。
ただ勝手なお願いなのですが No2さんでもおねがいしたように、
プログラムで強制的に入力モードの変更はできないものでしょうか?
ご存知でしたら、てがかりでもお教えください。
No.2
- 回答日時:
下記のアドレスにDOSで日本語入力をするためのことが書いてあります。
どうしても日本語入力したいのであれば、下記のアドレスにある、
「使用する日本語入力システムのマニュアルに従って、システムファイル"config.sys"に設定する行を追加します。」
この動作をするプログラム事態を作ってしまうと楽かもしれません。
参考URL:http://www.jpsa.or.jp/ps-net/psnetMNT-59.htm
度重なるご親切なアドバイスをありがとうございます。
すでに自分が作成したプログラムでも アドバイス通りの方法で日本語で入力する事ができ、それをコンピューター側が日本語で表示できました。
ただ、この入力方法の変更をプログラムの中に組み込んだ方がスムーズみたいです。
[Alt]キーと[半角/全角]キーの動作をユーザーに求めるのではなく、日本語入力が必要な場面では 日本語入力モードにし、入力終了後はただちに 半角に変更するようなプログラムをつくる必要があるのかと。
非常に安易な考えの 勝手なお願いですが、
ご指摘の「システムファイル"config.sys"に設定する」方法ではなく、その都度日本語入力モードにし、入力終了後はただちに 半角に変更するようなプログラムをつくる方法はあるのでしょうか?
No.1
- 回答日時:
DOSで日本語が打てない・・・というだけではないでしょうか?
自分のOSはXPなため、コマンドプロンプトという形であるゆえ、
MEのDOSのことは良く分かりませんが・・・。
とにかく日本語入力はDOSプロンプトに依存してると思います。
この回答への補足
早速のアドバイスをありがとうございます。
どうやら、質問の説明不足のようでした。ごめんなさい。
質問の内容は、現在C言語を勉強しています。
そのプログラムは、コンピュータとの簡単な会話をするものです。
そのプログラムを実行させた時に、ユーザー側から日本語で入力できる方法をしりたいのです。
コンピューター側からの質問をDOS上に表示する時は、もちろん日本語でできます。
例えば、「あなたの名前を入力してください」とです。
ところが、実行ファイルでは ユーザー側からの入力がアルファベットだけに限られてしましいます。
例えば、「yamada hanako」です。
これに答えて コンピューターは「こんにちは、yamada hanakoさん」となってしまいます。
これをユーザー側が 日本語の「山田花子」と入力でき、
コンピューターは「こんにちは、山田花子さん」と表示するようなプログラムを作成したいのです。
現在の私の知識では それは不可能なのですが、先日見た「猫でもわかる・・・」では 日本語入力していました。ライブラリがどうのこうのと書いてあるのですが、どうすれば私の環境でそれが可能になるのかと悩んでいるしだいです。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) Google日本語入力の操作方法 一度確定した後の訂正方法 1 2023/06/17 16:03
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- Chrome(クローム) chromebookで「十分(10分)」 4 2022/06/30 17:41
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- 中国語 新しい中国語入力ソフトを発明しました 22 2023/02/06 07:13
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- Android(アンドロイド) スマホの日本語入力の選択肢を変えるには 4 2023/07/29 19:07
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- 英語 英語の上達方法 4 2023/07/29 11:36
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスの入力制限
-
VB2005 TextBoxに何も入力しな...
-
VB.net テキストボックスの入力...
-
ハイフンとマイナス
-
至急です。Yahoo!IDを作りたく...
-
ネット内で「事後通販」という...
-
何の請求でしょうか
-
通販のdelias(ディーリアズ)に...
-
有料ウイルス対策ソフトの引越し
-
Amazonについてです。 アカウン...
-
僕はAndroidのSiMなし(電話番...
-
バイクの自賠責をau pay(簡単...
-
第5人格の体験分割みたいなも...
-
アダルト画像を見れないように...
-
何の請求なのかわからないので...
-
iPhone5 → 5S SIMカード入れ替え
-
winzipの削除
-
e-Gov 電子申請について 回答お...
-
ゲームの買い方
-
クレジットカードの名義人の入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ハイフンとマイナス
-
VBAのTextBoxに半角数字のみ入...
-
テキストボックスの入力制限
-
入力フォーム(電話番号)
-
TextBoxに半角数字のみの入力し...
-
VB2005 TextBoxに何も入力しな...
-
scanf( )で日本語を入力する方...
-
ボタンをクリックしても空白を...
-
単純なコマンドプロンプトが動...
-
教えて!全角文字「μ」の半角文...
-
VB.net テキストボックスの入力...
-
VS2010Exprsライセンスキー取得...
-
メールが送れません
-
WinAPIで日本語入力モード(倍...
-
VisualStudioのインテリセンス
-
imode用の郵便番号検索CGI
-
VAB プログラムが動きません。
-
Perl/CGIでのメール記入チェッ...
-
「FROM 句の構文エラーです」が...
-
キーボードからの入力の方法
おすすめ情報