• CSE207 객체지향 강좌 및 C++ 관련, 누구나 묻고 답하는 게시판 입니다.
  • CSE207 수강생이 아니여도 편안하게 질문하세요.
  • 첨부화일은 이미지 화일 혹은 zip 화일로 업로드 하기를 권합니다.

제목퀴즈 2번 질문드립니다!!2019-11-26 22:36
작성자

#include<vector>

#include<iostream>

#include<iomanip>

#include<fstream>

#include<string>

using namespace std;

class Item {

private:

string code;

string name;

int price;

public:

Item() :code(""), name(""), price(0) {}

Item(string _code, string _name, int _price) :code(_code), name(_name), price(_price) {}

string getCode() {

return code;

}

void setItem(string _code, string _name, int _price) {

code = _code;

name = _name;

price = _price;

}


bool readItemFromFile(ifstream& fin) {

while(fin){

string _code, _name;

int _price;

fin >> _code >> _name >> _price;

if (_code == "")

return false;

code = _code;

name = _name;

price = _price;

return true;

}

return false;


}

void writeItemToFile(ofstream& fout) {

fout << code << 't' << name << 't' << price << endl;

}



};

int main() {

Item temp;

vector<Item> vItem;

string inFleName = "item.txt";

string outFleNAme = "item_output.txt";


ifstream fin;

fin.open("item.txt");


while (temp.readItemFromFile(fin)) {

cout << "a" << endl;

vItem.push_back(temp);

}


fin.close();

temp.setItem("E1002", "박카스", 1000);

vItem.push_back(temp);


ofstream fout;

fout.open("item_output.txt");

for (auto elem : vItem)

elem.writeItemToFile(fout);


fout.close();


fout.close();


return 0;

}

저렇게 돌리니깐  temp.setItem("E1002", "박카스", 1000) 이거의 박카스만 인코딩이 깨져서 들어가더라고요 어떻게 해야 하나요?

while(fin){

string _code, _name;

int _price;

fin >> _code >> _name >> _price;

if (_code == "")

return false;

code = _code;

name = _name;

price = _price;

return true;

}여기에서 if문을 빼면 자꾸 temp에 하나 더 들어가는데 왜 그러는 건가요?? 

댓글
이전iterator 질문2019-12-04
다음lab#12 응용12019-11-26