0
저는 C++로 간단한 파서를 작성하고 있습니다. std::ws
으로 공백을 제거하고 싶습니다.stringstream과 str이 동기화되지 않았습니다.
bool Parser::readWhiteSpace()
{
std::cout << "Before : str=[" << this->_ss.str() << "], peek=[" << (char)this->_ss.peek() << ']'<< std::endl;
this->_ss >> std::ws;
std::cout << "After : str=[" << this->_ss.str() << "], peek=[" << (char)this->_ss.peek() << ']'<< std::endl;
return (true);
}
출력은 다음과 같습니다 스트림과 스트림에서 STR가 동기화되지 왜 이해가 안
Before : str=[ something], peek=[ ]
After : str=[ something], peek=[s]
. str에 영향을 미치지 않습니까?
'str()'은 전체 버퍼를 반환하고 "get"포인터는 공백이 아닌 다음 문자로 간단히 이동하기 때문에 다음 읽기 때만 차이점을 볼 수 있습니다. – 0x499602D2
함수 이름에서 앞에 오는 공백을 제거하는 것으로 시작할 수 있습니다! –