以前こちらで質問させていただいたのですが、実行結果をそのまま別のTextファイルに落としたいです。
ソースは、Textファイルの2列目までを読み込んで、同じ文字列がある行を抽出するというプログラムです。
C++
1#include <iostream> 2#include <string> 3#include <fstream> 4#include <map> 5#include <vector> 6 7std::string make_key(const std::string& str) { 8 std::string::size_type pos = 0; 9 pos = str.find_first_of(' ',pos); 10 pos = str.find_first_not_of(' ',pos); 11 pos = str.find_first_of(' ',pos); 12 return str.substr(0,pos); 13} 14 15int main() { 16 std::map<std::string,int> hist; 17 std::ifstream stream("text.txt"); 18 std::vector<std::string> lines; 19 std::string line; 20 while ( std::getline(stream, line) ) { 21 lines.push_back(line); 22 ++hist[make_key(line)]; 23 } 24 for ( const std::string& item : lines ) { 25 if ( hist[make_key(item)] > 1 ) { 26 std::cout << item << std::endl; 27 } 28 } 29}
Text.txt
あ い う え お か き く け こ さ し す せ そ あ い つ て と な に ぬ ね の か き ふ へ ほ
実行結果
あ い う え お か き く け こ あ い つ て と か き ふ へ ほ
回答1件
あなたの回答
tips
プレビュー