掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
fgets後のmap処理について (ID:57284)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
すいません.. 綴りとかは直しております。 ソースは 「namespaceを使用していない場合」 #include <stdio.h> #include <string> #include <map> int main(void){ FILE* fp; char buffer[250]; char *token; std::string strKey; //mapキー std::string strValue; //map値 std::map<std::string, std::string> mapdata; fp = fopen("message.csv","r"); if( !fp ){ return 1; } while( !feof(fp) ){ fgets(buffer,sizeof(buffer),fp); token = strtok(buffer,","); strKey = token; token = strtok(NULL,"\0"); strValue = token; mapdata[ strKey ] = strValue; mapdata.insert(pair<string, string>(strKey,strValue)); //token = strtok(NULL,","); } fclose(fp); std::map<std::string, std::string>::const_iterator p; for(p = mapdata.begin(); p != mapdata.end(); p++){ printf("%s",p -> second); } p = mapdata.find(strKey); if(p != mapdata.end()){ printf("%s",p -> second); } else { printf("not_data"); } return 0; } 「使用した場合」 #include <stdio.h> #include <string> #include <map> using namespace std; int main(void){ FILE* fp; char buffer[250]; char *token; string strKey; //mapキー string strValue; //map値 map<string, string> mapdata; fp = fopen("message.csv","r"); if( !fp ){ return 1; } while( !feof(fp) ){ fgets(buffer,sizeof(buffer),fp); token = strtok(buffer,","); strKey = token; token = strtok(NULL,"\0"); strValue = token; //mapdata[ strKey ] = strValue; mapdata.insert(pair<string, string>(strKey,strValue)); //token = strtok(NULL,","); } fclose(fp); map<string, string>::const_iterator p; for(p = mapdata.begin(); p != mapdata.end(); p++){ printf("%s",p -> second); } p = mapdata.find(strKey); if(p != mapdata.end()){ printf("%s",p -> second); } else { printf("not_data"); } return 0; } mapdata.insertの部分は綴りが間違っていたので コンパイルできてませんでした。 p = mapdata.find(strKey); if(p != mapdata.end()){ printf("%s",p -> second); } else { printf("not_data"); } の部分がちゃんと動くかを 確認したいので 関数を作って、main側で 引数からstrKeyを見て 該当するstrValueを出力できるかどうかを テストするため、修正しようと思っております。 指摘等ありましたら、お願い致します
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.