C言語ユーザーからひらがな入力

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

C言語ユーザーからひらがな入力

#1

投稿記事 by ひらがな入力 » 12年前


C言語で、キーボードから入力したひらがなは、ファイルから読み込んだひらがなと、
等しいかを比べたいものです。
gcc -v と入力、gcc version 4.8.1 (GCC)と表示。
gcc --input-charsetと入力、
gcc: error: unrecognized command line option '--input-charset'と表示。
gcc --input-charsetを使い。日本語を読み込んで比較する方法を、教えてください。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: C言語ユーザーからひらがな入力

#2

投稿記事 by みけCAT » 12年前

コード:

gcc --input-charset=cp932
のように、input-charsetの後に文字コードを書いてください。
日本語でも英語でもロシア語でも、単純にやるなら素直にfgetsで読み込んでstrcmpで比較すればいいと思います。

参考(コマンドの実行例)

コード:

YUKI.N>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw4.7.2/bin/../libexec/gcc/mingw32/4.7.2/lto-wrapper.e
xe
Target: mingw32
Configured with: ../gcc-4.7.2/configure --enable-languages=c,c++,ada,fortran,obj
c,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgo
mp --disable-win32-registry --enable-libstdcxx-debug --disable-build-poststage1-
with-cxx --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw
Thread model: win32
gcc version 4.7.2 (GCC)

YUKI.N>gcc --input-charset
gcc: error: unrecognized command line option '--input-charset'
gcc: fatal error: no input files
compilation terminated.

YUKI.N>gcc --input-charset=cp932
gcc: fatal error: no input files
compilation terminated.

YUKI.N>
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ひらがな入力

Re: C言語ユーザーからひらがな入力

#3

投稿記事 by ひらがな入力 » 12年前


hello.cはファイル名
gcc --input-charset=cp.932 hello.c -o hello
cc1.exe: error: conversion from cp.932 to UTF-8 not supported by iconv
とエラーが表示されました。解消する方法を教えてください。
ファイルから読んだ、ひらがな一文字表示や比較したいです。
お返事お願いします。

ひらがな入力

Re: C言語ユーザーからひらがな入力

#4

投稿記事 by ひらがな入力 » 12年前


hello.cはファイル名
gcc --input-charset=cp.932 hello.c -o hello
cc1.exe: error: conversion from cp.932 to UTF-8 not supported by iconv
とエラーが表示されました。解消する方法を教えてください。
ファイルから読んだ、ひらがな一文字表示や比較したいです。
お返事お願いします。

ひらがな入力

Re: C言語ユーザーからひらがな入力

#5

投稿記事 by ひらがな入力 » 12年前

みけCATさんお返事ありがとうございました。
二件ほど前のあいさつです。遅れてすいません。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: C言語ユーザーからひらがな入力

#6

投稿記事 by みけCAT » 12年前

文字コードの名前が違います。
cp.932ではなくてcp932です。

ところで、--input-charset=cp932を指定すると、
ソースコードの文字コードがShift_JIS(厳密には違うらしいが)とみなされます。
それであっていますか?UTF-8などではないですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: C言語ユーザーからひらがな入力

#7

投稿記事 by みけCAT » 12年前

読み込むファイルの文字コードは1個に決めつけていいですか?
それとも色々な文字コードのファイルを読み込ませたいですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ひらがな入力

Re: C言語ユーザーからひらがな入力

#8

投稿記事 by ひらがな入力 » 12年前

プログラムを載せます。
test.c

コード:

#include<stdio.h>
# define DICT "a8.txt"
int main (void){ 

 int i=0;
 char input[30];
 char b[20];  
 FILE *fd;
 
  fd=fopen(DICT,"r");
  fgets (input, sizeof(input), fd); 
 
  printf("ひらがな入力");
  scanf("%s",b);
  for(i=0;i<20;i++){
  
  printf("%c",b[i]);
  printf("%c",input[i]);

                   }
        
 
 return(0); }
gcc --input-charset=cp932 test.c -o test
を実行すると、printf("ひらがな入力")は縺イ繧峨′縺ェ蜈・蜉
と表示されます。
gcc test.c -o testではひらがな入力の表示はされました。

printf("%c",b)やprintf("%c",b)は、キーボードから入力後、
宸・「Dゥu・犱I輹Qクと表示されます。
文字化けしない、文字コード一つを読み込むファイルに指定したいです。

お返事お願いします。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: C言語ユーザーからひらがな入力

#9

投稿記事 by みけCAT » 12年前

input-charsetのみを指定すると実行ファイルにはUTF-8で出力されるので、
Shift_JISで出力したいなら--exec-charset=cp932も指定する必要があります。

また、ひらがな(などの日本語の文字)は複数バイトで表されるため、
出力するときはそのバイト数(Shift_JISなら2バイト)を一気に出力しないといけません。
このプログラムではbとinputを混ぜてしまっているため、正しく出力されないようです。
ひらがな入力 さんが書きました:文字化けしない、文字コード一つを読み込むファイルに指定したいです。
意味がよくわからないので、解説していただけると助かります。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ひらがな入力

Re: C言語ユーザーからひらがな入力

#10

投稿記事 by ひらがな入力 » 12年前

お返事ありがとうございました。

gcc --exec-charset=cp932 --input-charset=cp932 test.c -o test を実行。
printf("%c",b);
printf("%c",input);はファイルやキーボードから、ひらがな入力を受けた変数。
bb「「bゥゥb澵b鉗bククは実行結果でした。

ファイルや、キーボードから、ひらがななどを文字化けせず読み込み、一文字づつ表示、比較をしたいです。
わかりづらい表現ですいません。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: C言語ユーザーからひらがな入力

#11

投稿記事 by みけCAT » 12年前

もしかして日本語のネイティブではない方でしょうか?
(少なくとも私には)英語で質問してもいいですよ。
※1文字以上(?)日本語の文字を含めないと投稿できないです

「文字コードを読み込むファイルに指定する」という操作が具体的に何を表しているかを教えてください。

[hr]
You may ask your questions in English.
(You must include Japanese characters in your posts.)

Please tell me what you mean by 「文字コードを読み込むファイルに指定する」
in concrete terms.
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ひらがな入力

Re: C言語ユーザーからひらがな入力

#12

投稿記事 by ひらがな入力 » 12年前

お返事ありがとうございます。
文字コードを読み込むファイルに指定するは、
みけCAT さんが書きました:読み込むファイルの文字コードは1個に決めつける。
事です。
ファイルから、読み込んだひらがなの文字列の、一文字を表示や比較したいです。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: C言語ユーザーからひらがな入力

#13

投稿記事 by みけCAT » 12年前

ひらがな入力 さんが書きました:文字コードを読み込むファイルに指定するは、
みけCAT さんが書きました:読み込むファイルの文字コードは1個に決めつける。
事です。
では、その使用する文字コードを指定してください。
それに合わせた判定法を提案しようと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ひらがな入力

Re: C言語ユーザーからひらがな入力

#14

投稿記事 by ひらがな入力 » 12年前

みけCATさん 長い間 お話 ありがとうございます。 十分です。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: C言語ユーザーからひらがな入力

#15

投稿記事 by みけCAT » 12年前

解決、もしくは質問を終えるときは、解決チェックをお願いします。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

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