1
일부 벡터가 포함 된 프로그램 마녀 클래스를 작성하고 싶습니다. 나는 ">>"오버로드 된 연산자와 나는이오버로드 >> 연산자, while 루프에서 벡터 입력
1 2 3 4
처럼, 한 줄을 입력 값을 넣을이 제 기능입니다
istream &operator>>(istream &in, Wielomian &w){
double val;
w.stopien=0;
while(in>>val){
w.tabw.push_back(val);
w.stopien++;
}
return in;
};
I 돈 내가 잘못하고있는 것을 알지 못한다.이 함수는 루프를 끝내지 않을 것이다. 이것은 내 수업입니다
class Wielomian{
private:
int stopien;
vector<double> tabw;
public:
Wielomian(){
stopien=0;
}
Wielomian(int s, vector<double> t){
tabw=t;
stopien=s;
}
Wielomian(Wielomian &w){
this->stopien=w.stopien;
this->tabw=w.tabw;
}
friend istream &operator>>(istream &in, Wielomian &w);
friend ostream &operator<<(ostream &out, const Wielomian &w);
};
감사합니다.
string inputStr;
std::getline(in, inputStr);
을하고 그것에서 모든 값을 추출 할 수있는 문자열을 구문 분석 : 당신은 그냥 같은 라인에서 모든 것을 읽고 싶다면
물론 나는 그것을 놓쳤다. 나는 값을 다시 넣지 않기 때문에 루프를 종료해야한다. 스트림에서 Enter 키를 인식하는 방법이 있습니까? 내 루프 - 깨는 경우 수 있습니다. –
새로운 라인에서 멈추고 싶다면'getline'을 사용하는 것이 좋습니다. 그런 다음 문자열을 사용하여 문자열을 구문 분석 할 수 있습니다. 이것 좀 봐 : http://stackoverflow.com/questions/9673708/tell-cin-to-stop-reading-at-newline – grigor
예, 이것은 해결책 일 수 있습니다. 어쨌든, 고맙습니다, 지금 나는 무엇이 문제인지를 안다. 감사! –