• 締切済み

CSVを用いた検索プログラム動かし方

#pragma warning( disable: 4996 ) #include <stdio.h> #include <string.h> #include <fstream> using namespace std; typedef struct tagKOTOWAZA{ char japanese[50]; char english[50]; }KOTOWAZA; int main() { char buf[256]; KOTOWAZA c[200]; int i, count; /*ifstream strtok strcpy を使ってファイルを読み込む*/ //=====ここから===== ifstream fin("Book1.csv"); if(fin.is_open()){ //ファイル内容の表示とクローズ for(count=0;fin.getline(buf, sizeof(buf)), !fin.eof();count++){//読み込める間 //printf("%s",buf);デバッグ用 char *p; p = strtok(buf,","); if(p)strcpy(c[count].japanese,p); p = strtok(NULL,","); if(p)strcpy(c[count].english,p); } fin.close(); }else{ printf("ファイルのオープンに失敗しました。\n"); return 1; } //=====ここまで==== return 0; } ここからどうすればCSVファイルに書いた 漢字,English を検索できるのかがわかりません・・・ 言語はC++を使っていますvisualstudio2012を使っています。 どうすればいいのか全く分かりません。 よろしくお願いします。

みんなの回答

回答No.3

/* * Visual C++ 2013 でコンパイル/実行 * cl -EHsc csvsearch.cpp */ #include <iostream> #include <fstream> #include <string> #include <map> #include <array> #include <algorithm> using namespace std; int main() { map<string,string> dictionary; ifstream stream("Book1.csv"); if ( !stream.is_open() ) return -1; string line; while ( getline(stream,line) ) { // "○○○,×××," から "○○○" と "×××" を切り出して key, value とする string::size_type pos; pos = line.find(','); if ( pos == string::npos ) continue; string key = line.substr(0,pos); line = line.substr(pos+1); pos = line.find(','); if ( pos == string::npos ) continue; string value = line.substr(0,pos); // key/valueを辞書に登録 dictionary[key] = value; } // 以下の各keyについて array<string,4> keys = { "りんご", "みかん", "なし", "もも" }; for ( string key : keys ) { // 辞書を検索し、 auto iter = dictionary.find(key); if ( iter != dictionary.end() ) { // あったら出力 cout << "japanese=" << key << ", english=" << iter->second << endl; } else { // なかったら not found cout << "japanese=" << key << " not found" << endl; } } } /* Book1.csv: みかん,orange, りんご,apple, もも,peach, */

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>しかし、上述のソースをwindowsコンソールアプリケーション(からのプロジェクト)でデバッグ無しで実行すると何か入力してください...という状態のコンソールがでてきて、入力するとコンソールが消えてしまいます.... アプリ終了待ちでしょうかね。 「何か入力してください」とか表示されている時点でプロセスは終了していると思われます。 >漢字(林檎)を入力したらappleがかえってくるような 入力処理すらないのですから、無理でしょう。 # というか入力する方法って理解していますかね?

参考URL:
http://dixq.net/forum/viewtopic.php?f=3&t=15598&sid=62b7f8df65ae3e69e35bd743eece5d8c
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「ここからどうすればCSVファイルに書いた 漢字,English を検索できるのかがわかりません・・・」 ってことだけど, そもそも「『漢字,English』を検索」ってどういうこと? そして, どこから検索する?

meteor89
質問者

補足

CSVファイルに 漢字,English 例) 林檎,apple といったものを作成し、そのファイルから 漢字(林檎)を入力したらappleがかえってくるようなプログラムを書きたいのです。 しかし、上述のソースをwindowsコンソールアプリケーション(からのプロジェクト)でデバッグ無しで実行すると何か入力してください...という状態のコンソールがでてきて、入力するとコンソールが消えてしまいます....

関連するQ&A

専門家に質問してみよう