일부 오류 입력 처리가 주어진 클래스가 있습니다. 그것은 자신에게 "추출"연산자가 주어졌으며 주어진 코드를 구현하도록 요청 받았습니다. 내가 가지고있는 문제는 내가 사용해야하는 코드가 이와 비슷하게 보인다는 것입니다.C++ 오류 처리 반환 값 오류가 반환되었습니다.
try {
while (some condition)
{....implemented code....}
} catch (runtime_error& e) {
cerr << e.what() << endl;
return 1;
}
나는이 그것을 좋아하지 않는 것입니다 컴파일하는 데 문제는 IT 나에게의 오류 제공 값 "1을 반환"나는 그것이 컴파일 반환 값을 제거하면
invalid initialization of non-const reference of type ‘std::istream& {aka std::basic_istream<char>&}’ from an rvalue of type ‘int’
을 직선이지만 프로그램이 try 문을 수행하려는 영역에 도달하면 프로그램이 실행되지 않습니다. 위에서 언급했듯이 위 코드는 우리가 구현해야하는 예제 코드입니다. 그래서 작동 할 것이라고 생각했습니다. 내가 어떤 이유로 실패 할 때까지 입력을 받고 유지하려는 것 가정으로 while 루프에 대한 나의 조건은
while (!std::cin.fail())
했다. 이 경우 리턴 값이 왜 문제가되는 것입니까?
형태
따라서 컴파일 오류의 서명이 있습니다. 그리고 나는 범위를 벗어나는 변수가 아니라 참조를 의미합니다. – chris
while 루프를 간단하게 만들 수 있습니다 :'while (std :: cin)'- 위와 같은 의미이지만 8 문자 이하로 입력하십시오. –