내 벡터의 데이터를 새 텍스트 파일에 쓰려고 시도하는 중, 프로세스에서 새 텍스트 파일을 만드는 중입니다. 아래 코드는 내 코드입니다. < < 그냥 오류가 있습니다. FS 후, 오류 상태가 더 연산자는 "< <"는 < < 연산자를 오버로드하지 않은 것 같다 이러한 피연산자새 텍스트 파일에 벡터 작성
struct Weather
{
int a_data;
int b_data;
double c_data;
double d_data;
double e_data;
double ans_temp;
};
ofstream &operator << (std::ofstream &f, Weather& obj)
{
f<<obj.a_data;///Etc ...code corresponding to dispaly parameters
return f;
};
int main()
{
using std::vector;
using std::string;
using std::getline;
using std::cout;
vector<Weather> data_weather;
string line;
ifstream myfile ("weatherdata.txt");
if (myfile.is_open())
{
int count = 0;
while (getline(myfile, line))
{
if (count > 6)
{
int a, b;
double c, d, e;
std::istringstream buffer(line);
std::string e_as_string;
if (buffer >> a >> b >> c >> d >> e_as_string)
{
if (e_as_string == "---")
{
sun = 0.0;
}
else
{
std::istringstream buffer2(e_as_string);
if (!(buffer2 >> sun))
{
sun = 0.0;
}
}
Weather objName = {a, b, c, d, e};
data_weather.push_back(objName);
}
}
count++;
}
myfile.close();
for (auto it = data_weather.begin(); it != data_weather.end(); ++it)
{
it->ans_temp = it->c_data + it->d_data /2;
}
for (auto it = data_weather.begin(); it != data_weather.end(); ++it)
{
std::cout << it->ans_temp << std::endl;
}
std::ofstream fs("newdata.txt");
for(vector<Weather>::const_iterator it = data_weather.begin(); it != data_weather.end(); ++it) {
fs << *it << '\n';
}
}
else
cout << "unable to open file";
scat::pause("\nPress <ENTER> to end the program.");
return 0;
}
당신은'Weather'에 대한'연산자 <<'과부하를 제공 한 적이 있습니까? –
은 Weather 클래스의 스케 leiton을 공유합니다. 그리고 ow는 << 연산자를 오버로드 했습니까? – shivakumar
@shivakumar ive 님이 질문에 대한 답변을 – jaylad