프로그램을 실행 한 후 오류가 발생하여 문제가있는 부분을 식별 할 수 없습니다. 누구든지이 문제에 관해 조언 해 주겠습니까? transaction.h #ifndef TRANSACTION_H #DEFINE TRANSACTION_HC2280 프로그램을 실행할 때 오류가 발생했습니다.
#include <iostream>
#include <string>
#include <sstream>
#include <cstring>
using namespace std;
class Transaction
{
public:
Transaction(string input);
string getDate();
string getTime();
string getCondition();
float getPrice();
float getValue();
int getVolume();
void find_and_replace(string& source, string const& find, string const& replace);
private:
ostringstream date;
ostringstream time;
string condition;
float price, value;
int volume, day, month, year, hour, minute;
};
Transaction::Transaction(string input) {
find_and_replace(input, "/", " ");
find_and_replace(input, ":", " ");
find_and_replace(input, "", " ");
stringstream tranStream(input);
tranStream >> day;
tranStream >> month;
tranStream >> year;
tranStream >> hour;
tranStream >> minute;
tranStream >> price;
tranStream >> volume;
tranStream >> value;
tranStream >> condition;
}
string Transaction::getDate() {
date << day << '/' << month << '/' << year;
return date.str();
}
string Transaction::getTime() {
string PlusZero;
if (minute < 10) {
PlusZero = "" + to_string(minute);
time << hour << ':' << PlusZero;
}
else {
time << hour << ':' << minute;
}
return time.str();
}
float Transaction::getPrice() {
return price;
}
int Transaction::getVolume() {
return volume;
}
float Transaction::getValue() {
return value;
}
string Transaction::getCondition() {
return condition;
}
void Transaction::find_and_replace(string& source, string const& find, string const& replace)
{
for (string::size_type i = 0; (i = source.find(find, i)) != string::npos;)
{
source.replace(i, find.length(), replace);
i += replace.length();
}
}
#endif // !TRANSACTION_H
mainmenu.cpp
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include "Transaction.h"
using namespace std;
void printStock(vector<Transaction> t, int i) {
cout << "Date :" << t.at(i).getDate << endl;
cout << "Time :" << t.at(i).getTime() << endl;
cout << "Price : " << t.at(i).getPrice() << endl;
cout << "Volume : " << t.at(i).getVolume() << endl;
cout << "Value : " << t.at(i).getValue() << endl;
cout << "Condition: " << t.at(i).getCondition() << endl;
cout << endl;
}
int main() {
string menu;
vector<Transaction> TransList;
string a = "24/07/2015 17:00,6,67889,407334,CT";
string b = "24/07/2015 17:01,5.8,144,835.2,XT";
string c = "24/07/2015 17:04,0,0,0,CTXT";
string d = "24/07/2015 17:10,5.78,1203,6953.34,CT";
TransList.push_back(a);
TransList.push_back(b);
TransList.push_back(c);
TransList.push_back(d);
for (int i = 0; i < TransList.size(); i++) {
printStock(TransList, i);
}
cin >> menu;
return 0;
}
나는이 문제를 내가 벡터를 해제하는 동안 때 나타나지 않았다대로 벡터에 문제가 있음을 의심하고 각각의 결과에 대한 확인 끈. 하지만 구문 분석을 위해 읽은 데이터를 저장하는 벡터가 필요합니다. 감사합니다.
안녕 KIIV 있어야 큰 도움을 주셔서 감사합니다! ostringstream을 변경하고 벡터 참조를 전달하려고 시도했지만 오류가 없습니다. –