1日の複数のポイントから取得した「株式市場のティッカー」を含むテキストファイルを取り込もうとしています。
IE
ティッカー価格HPQ121MSFT
76
X 133
EBAY 92 XOM
64
AAPL 141
DJIA 128
AAPL 130
ABC 139
ABC 102
DJIA 121
HPQ
121
DJIA 96
XOM 130
MSFT 132
HPQ 129
HPQ 71
GOOG 142
MSFT 67
X 70
それらの値を取り込んで、重複を削除し、アルファベット順に終了値を表示する必要があります。これまでのところ私はこれを持っています...
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <map>
using namespace std;
int main()
{
string filename;
map<string, int> string_count;
vector<string> market_list;
ifstream data_store;
//cout << "Enter stock file name to analyze" << endl;
//cin >> filename;
//data_store.open(filename.c_str());
data_store.open("stock1.txt");
while(!data_store.eof())
{
string element;
//data_store >> element;
getline(data_store, element);
//Remove ticker price from list
if(element != "Ticker Price")
{
string_count[element]++;
}
}
map<string, int>::iterator map_iter;
for(map_iter = string_count.begin(); map_iter != string_count.end(); map_iter++)
{
market_list.push_back(map_iter->first);
}
data_store.close();
ofstream output_file;
output_file.open("stock_result.txt");
output_file << "Latest prices: " << endl;
vector<string>::iterator iter;
for (iter = market_list.begin(); iter != market_list.end(); iter++)
{
string the_element = *iter;
int num_times_repeated = string_count[the_element];
for(int x = 0; x< num_times_repeated; x++)
{
output_file << the_element << endl;
}
}
output_file.close();
}
これは、何も削除せずに、ファイルのすべての値をアルファベット順に出力します。これがなぜなのかは理解できますが、自分が望むものにこれを設定する方法を回避するのに苦労しています。覚えておいてください、私は学生なので、簡単な答えは望んでいません:)
編集
上記のリストをコードに取り込んで、各ティッカーの最終値である「クロージング」値を出力し、アルファベット順に表示したいと思います。
したがって、結果は次のようになります
最新の価格:
ABC 102
AAPL 130DJIA96
など
。