OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

ファイルの読み込み

  • すぐに回答を!
  • 質問No.240601
  • 閲覧数153
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 56% (30/53)

こんにちは。
データファイルを読み込み、そのデータを
ハッシュテーブルにいれたいのですが、、、。
データファイルは
Kevin Bacon
Adam West
Burt Reynolds
Dom Deloise
Kirstie Alley
といった感じです。
よろしく
お願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1

%hashに入れるとすると、 open (FILE, "datafile.txt"); while (<FILE>) { m/(\w+)\s+(\w+)/; $hash{$1} = $2; } close FILE; でいかがでしょう? ...続きを読む
%hashに入れるとすると、

open (FILE, "datafile.txt");

while (<FILE>) {
m/(\w+)\s+(\w+)/;
$hash{$1} = $2;
}

close FILE;

でいかがでしょう?
お礼コメント
nemuxin

お礼率 56% (30/53)

早急に返信いただき、有り難うございます。
説明不足のため、すっかりC++でプログラム
をしている事を書き忘れてしまいました、、。
すみません。
c++で、わかりましたら、
返信よろしくお願いします。
投稿日時 - 2002-03-25 00:34:58


  • 回答No.2
レベル10

ベストアンサー率 61% (70/113)

#1さんの回答はperlのような気がしますが... Cには連想配列がないため、連想配列を実現するライブラリを使用するか、自分で実装します。 「自分で実装」の部分を詳しく知りたいなら、CなのかC++なのかを書いてください。 ...続きを読む
#1さんの回答はperlのような気がしますが...
Cには連想配列がないため、連想配列を実現するライブラリを使用するか、自分で実装します。
「自分で実装」の部分を詳しく知りたいなら、CなのかC++なのかを書いてください。
補足コメント
nemuxin

お礼率 56% (30/53)

返信有り難うございます。
プログラムはC++で作っています。
class Name{
char name[64];
int hash[20];
public:
Name();
int show();
};
というクラスを作り、
データファイル内のデータを
name[64]にいれて、
ハッシュを計算しようと試みたのですが、
ファイル自体を読み込んで無いようです。
ifstream J;
J.open(DATA, (ios::nocreate));
これでファイルは読み込めているのでしょうか?
ファイルを読み込んで、データをname[64]に
入れる事は出来るのでしょうか?
よろしくお願いいたします。
投稿日時 - 2002-03-25 00:28:46
  • 回答No.3
レベル10

ベストアンサー率 61% (70/113)

ifstreamのインスタンスを生成しただけでは読み込みは行われません。 ifstream.openの第1引数は、読み込み先領域のポインタではなく、ファイル名です。 ifstream.openは ifstream dataFile; dataFile.open("datafile.txt"); のように使用します。実際の読み込みは、cinと同様、 dataFile > ...続きを読む
ifstreamのインスタンスを生成しただけでは読み込みは行われません。
ifstream.openの第1引数は、読み込み先領域のポインタではなく、ファイル名です。
ifstream.openは
ifstream dataFile;
dataFile.open("datafile.txt");
のように使用します。実際の読み込みは、cinと同様、
dataFile >> buffer;
のようにして行います。
但し、区切り文字に関しては注意してください。
# 一度、ファイルの内容をただ表示するだけのプログラムを書いてみると感じがつかめるかもしれません。

ハッシュに関しては、例示されたクラスでは不都合があると思われます。
hash値を格納するメンバが書かれていますが、データが動的に変更される可能性がある以上、これを格納することに意味がありません。
もし、データ数が少なく、かつデータが変更されないのであれば、配列をソートしてインデックスを付加した方がよほど効率的です。
ハッシュテーブルを作成する場合には、Java言語のjava.util.Hashtableクラスを参考にすると良いと思いますが、
標準的な実装としてはキーと値の組を表すクラスと、ハッシュテーブルを表すクラスの2つを作成することになるでしょう。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ