• 締切済み

C言語について

C言語の理解で行き詰まってしまい、ポイントを教えていただきたく質問させて頂きました。 抽象的な説明で申し訳ありません。 よろしくお願いします。 悩んでいるポイントは以下になります。 ファイルを保存してからは、プログラム内で system 関数を使って、 外部プログラムを実行する。 最初は、文字コードをEUCに変換して、ファイルに保存します。 system("nkf -e (抽出データを保存したファイル名) > data.txt"); 次に、形態素解析をして名詞などを取り出して、またファイルに格納する。 system("chasen data.txt | ./cs.pl > key.txt"); また、臨時で保存しておいたファイルを削除する。 unlink("data.txt"); 以上ですが、質問がわかりづらい場合は教えてください。 よろしくお願いします。

みんなの回答

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.3

> C言語で作ることが必須 ヘッダーファイルのインクルードや関数の記述など、 C言語のソースコードとしての体裁を整えればいいだけだと思います。 体裁が整えばコンパイルできるようになりますが、 プログラムとして正しく動くかどうかはまた別の話です。

merlmerlgo
質問者

お礼

ありがとうございます。 一応自分でも作って挑戦していますが、もしまた行き詰まったらアドバイスをお願いします! まずは体裁を整える事から取り組んでみます。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.2

どうしてもC言語で解決しなければならない問題ですか?

merlmerlgo
質問者

お礼

考えていただきありがとうございます。 はい。 これはC言語で作ることが必須なので、出来ればアドバイスなどはC言語で解説していただけると、とてもありがたいです。 よろしくお願いします。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

え~と, 「どこで/何を」悩んでいるのか, さっぱりわからんのですが.

merlmerlgo
質問者

お礼

分かりづらくてホントにすいません。。。 中段の文章をプログラム化出来なくて困っているのですが、 何ぶん、system関数など初めて聞いたもので、調べてはみたんですが、 あまり理解出来ずに・・・ 「ファイルを保存してから・・・」と言うのはあまり関係なく、問題は このプログラムの流れと「文字コードの変換」・「形態素解析」です。 拙い文章でホントに申し訳ありません。。。

関連するQ&A

  • C言語プログラム

    .txtファイルのデータを読み込んで処理するプログラムを作っているのですがやり方がわかりません。 .txtファイルには 1  1.0043  34   744   0.001 7  1.0053  36  733   0.024 4   1.0056  62  621  0.003 . . . と百行くらいのデータがあります。 このデータを読み込んで3行目の2桁の数字だけを取り出す作業ができません。 34 36 62 このようにしたいのですがわかる方教えてください、お願いします。

  • windowsXP --> FedoraCore1 漢字変換について

    SJISのtextファイルを、メールに添え付けて、 Linuxに送って、nkfでEUCに変換しようとしたところ うまくいきません。 nkf -e sjis.txt これでは、うまくいきませんでした。 nkf -unix sjis.txt これでは、標準出力ですが、うまく変換できています。 それで、 nkf -unix sjis.txt >/tmp/a.txt を、実行したところ、出力ファイルの中は、 変換できていませんでした。 sjis.txtは、windowsのメモ帳で、 "あいうえお"と、書いただけです。 よろしくお願いいたします。

  • c言語 

    データを構造体の配列に格納したいのですが、このやり方ではできませんでした。どうすればいいですか? (ファイル内のデータを読み込んで格納しようとしています。) typedef struct dataset{ int price; char id; char name; }data; int main(void) { FILE *f = fopen("input.txt","r"); FILE *output = fopen("output.txt","w"); char order[100]; char name[100]; char id[100]; int price; int num = 0; while(fscanf(f,"%s",order) != EOF){ fscanf(f,"%s%s%d",product->name[num],product->id,&product[num].price); num++; } } return 0; } input.txt CD Kenji 300 DVD Nanako 350 PC Koki 1000 ........

  • C言語 教えてください

    data.txtの中に入っているデータを読み込み、 全て出力するというプログラムを作ろうとしています。 しかし、上手く読み込み表示させることが出来ません。 自分で出来るだけ調べたのですが、 どこがおかしいのかわからないので教えてください。 ↓↓↓現在作っているプログラムです↓↓↓ #include <stdio.h> void main(void) { FILE *fp; char number, name; if ((fp = fopen("data.txt", "r")) == NULL) { printf("FILE OPEN ERROR\n"); } else { while (fscanf(fp, "%s%s", number, name) == 2) { printf("%s-%s\n", number, name); } } fclose(fp); printf("FILE CLOSE !!\n"); } ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ↓↓data.txt↓↓ 001 aaa 002 bbb 003 ccc 004 ddd 005 eee ↑↑↑↑↑↑↑↑ よろしくお願いします。

  • 文字コードの判別について

    とあるテキストファイルがあります。UNIX上で文字コードの判別を行いたいのですが、nkf --guess test.txtと打って調べると、 test.txt: ASCII (CRLF) となります。このファイルは、Shift-JISだという判定だと思います。 ファイルをUTF8に変換したいので、(1)Windows上のエディタ(秀丸)の機能を使ってUTF8に変換してからUNIX上にアップロードしたり、また(2)UNIX上から直接nkf -w --overwrite test.txtを実行して変換したりしたのですが、nkf --guess test.txtを打って調べると相変わらず test.txt: ASCII (CRLF) のままです。 色々調べた結果、ファイルの中身が英数字のみしか書かれていないので、nkfがこのファイルをShift JISだと「推測」しているということがわかってきました。確かに、試しにファイルの中身に日本語を書いて保存して実行してみると、ようやくnkf --guess test.txtの結果が test.txt: UTF-8 (CRLF) と表示されるようになりました。 これらの結果は、ファイルの中身のマルチバイト文字のコードを見て初めて文字コードがわかるようになるというように思えます。 私の理解ではファイル自体にEUCやShift JIS、UTF-8などの文字コードがあるものとばかり思っておりました。つまり、test.txtの内容が"This is a pen."であったとしてEUC、Shift JIS、UTF-8では全く異なる三種類のファイルが存在し得るものだと思っておりました。しかしこれは私の理解が間違っていて、英数字であれば常にShift JISであり、マルチバイト文字があって初めてUTF-8なのかEUCなのかShift JISなのかが決定されるということなのでしょうか? 英数字のみのファイルでもUTF-8ファイルという前提を確認する方法はないのでしょうか? 宜しくお願いします。

  • c言語について

    身長と体重を読み込んで平均を表示するプログラムについて、 Aiba 160 59.3 KUrata 16251.6 Masaki 182 76.5 Tanaka 170 60.7 Tsuji 175 83.9 Washio 175 72.9 とういデータがテキストファイル"hw.dat"として保存されていなければならないのですが、保存の仕方が分からず、必ずファイルをオープンできません。 どうか保存の仕方を具体的なプログラムを交えながら教えていただきたいです><

  • C言語に関する質問です

    入力ファイルindata.datからデータを読み込み配列に格納し同時にデータの個数を求めるプログラムを作成したいです データの個数は最大で100個扱えるようにしたいです indate.datの作成の仕方も教えて欲しいです 宜しくお願いします

  • C言語からデータベースにアクセス

    現在C言語で作成したシステムで MySQLで作成されたデータベースに格納されている画像のヒストグラム情報(すでに数値化して格納してあります)を取得 →プログラム内で処理→処理後の画像のファイル名、ヒストグラム情報をデータベースに格納 (C言語プログラム、データベースともに同じサーバー機に入っています) という処理を行いたいと思っているのですが、どのようにするのが良いでしょうか? データベースからのデータ取得はCから検索キーを指定して、データを検索、取得できればなおよいです。 PostgreSQLであればlibpqなどのライブラリがあるようですが、MySQLはどうにもわかりません。 C言語で作成したプログラムをCGIとして実装すればよいとは思うのですが、 解説サイトではフォームからの入力ばかりで、データベースから直接の受け渡しや、 画像情報のような大量のデータの受け渡しを解説しているサイトは見当たりませんでした。 なお、データベース操作はphpで行っています。 分かり辛い分で申し訳ありませんが、最悪Cプログラムからデータベースへのデータ格納だけでもかまいませんので、ご回答お願いします。

  • C言語

    ファイルデータ(11,22,33,0,44)を読み込んで表示することを5回繰り返すプログラムを作りたいのですが分かりません。 さらに出来ればファイルデータが0でなければ表示し、0を読み込んだら終了するwhile文でのプログラムも教えてください。 途中経過 #include <stdlib.h> #include <stdio.h> int main(void) { int x = 0,i; FILE *infile; infile = fopen ("test.txt", "r"); if(infile == NULL) { fprintf(stderr, "test.txtが開けません\n"); exit(1); } i = 0 while(1){ i++; fscanf(infile, "%d", &x); printf("%d\n", x); if(i = 5)break; } fclose(infile); return 0; } ここまでで実行すると11しか表示されません。 これまでの質問分かるかたどなたか教えてくださいお願いします。

  • [C言語]2つのファイルを用いたプログラムについて

    こんにちは、最近C言語でファイルを扱うプログラムについて学習しているものです。 2つのファイルを用いて合計値と平均値を求めるプログラムについての質問です。 具体的には、以下に示すようなものをC言語で作成しようとしています。 例えば、以下の2つのデータファイルがあるとします。 /*(1)価格表.txt*/ わかめ 195 醤油 300 電球 298 … … … … 納豆 88 (約2000種類) /*(2)買い物リスト.txt*/ 納豆 えび 醤油 … (約500種類) この2つのファイルを用いて、「買い物リスト.txt」に書いてあるすべての商品価格の合計値と、価格の平均値を「価格表.txt」を用いて求めるプログラムをC言語で作成してみたいと考えています。 「価格表.txt」の商品数が少なければ、switch文を用いてプログラムを作成することができると思うのですが、「価格表.txt」の商品数が2000種類くらいある場合だと、どのようにプログラムを作成すればよいかわかりません。 よろしければご教授ください。OSはUbuntuを使っております。 よろしくお願いいたします。