일반적으로 다음과 같이 제어 루프를 작성합니다. "입력 완료"가 입력 될 때까지 입력 된 루프가 벡터 nVec에 ints를 씁니다.아무 것도 입력하지 않을 때 루프 종료
이 작동하지만 사용자가 아무 것도 입력하지 않은 상태에서 루프를 끝내려면 어떻게해야합니까?
일반적으로 다음과 같이 제어 루프를 작성합니다. "입력 완료"가 입력 될 때까지 입력 된 루프가 벡터 nVec에 ints를 씁니다.아무 것도 입력하지 않을 때 루프 종료
이 작동하지만 사용자가 아무 것도 입력하지 않은 상태에서 루프를 끝내려면 어떻게해야합니까?
토큰 별 추출에 "아무 것도 입력 할 수 없습니다." 루프를 멈추는 유일한 방법은 사용자가 파일 끝을 보내는 것입니다 (Linux에서는 Ctrl-D). 나는 개인적으로이 올바른 행동이라고 말할 것입니다,하지만 당신은 빈 입력에 종료하려는 경우, 당신은 라인을 읽을 필요가 :
Sales_item total;
for (std::string line; std::getline(std::cin, line);)
{
if (line.empty()) { exit_program(); /* or "break" */ }
std::istringstream iss(line);
for (Sales_item book; iss >> book;)
{
total += book;
std::cout << "The current total is " << total << std::endl;
}
}
이 방법을 사용하면 아마도 여러 책으로 각 행을 토큰 화. 한 줄에 하나의 책만 원할 경우 내부 루프를 찢어 내고 std::istringstream(line) >> book;
라고 말하면됩니다.
감사 ...이 오류가 발생하는 이유는 무엇입니까? 10 오류 : 'exit_program'이이 범위에서 선언되지 않았습니다. 12 오류 : 'std :: istringstream iss'변수에 초기화 프로그램이 있지만 불완전한 형식이 있습니다. exit_program()이 헤더 파일에서 호출되어야한다고 추측합니다. 하지만 불완전한 타입에 대한 단서가 없습니다 ... –
문자열 스트림에'#include
감사! 이게 내가 얼마나 새로운지 보여줍니다 ... 도움을 청합니다! –
'='은 대입 연산자이고, '=='는 항등 연산자입니다. 그 (것)들을 혼동하지 않기 위하여 잘하십시오. –