이 기사에서는 구문과 예제를 통해 C++의 std::stol 함수에 대해 알아봅니다.
std::stol()이란 무엇입니까?
그만큼 표준 템플릿 라이브러리(STL) C++에는 다음이 포함됩니다. 표준::스톨() 변환을 위해 특별히 만들어진 기능입니다. 문자열을 긴 정수로 . 이 함수는 사용자 입력으로 작업하거나 입력이 일반적으로 문자열 형식으로 제공되는 외부 소스에서 데이터를 읽을 때 특히 유용합니다. 문자열을 입력으로 받은 후 해당하는 긴 정수를 반환합니다. 변환이 불가능하거나 입력 문자열에 유효한 숫자의 일부가 아닌 문자가 포함된 경우 std::invalid_argument 또는 std::out_of_range 유형의 예외가 발생합니다.
통사론:
다음과 같은 구문이 있습니다.
long std::stol(const std::string& str, size_t* pos = 0, int base = 10);
str: 긴 정수로 변경해야 하는 텍스트입니다.
자바 문자열.형식
위치: size_t 개체에 대한 포인터로 저장된 문자열의 변환되지 않은 첫 번째 문자의 인덱스입니다. 필요하지 않은 경우 이 선택적 매개변수를 nullptr로 설정할 수 있습니다.
베이스: 변환의 숫자 기반입니다. 10이 기본값입니다.
지도 타이프스크립트
반환 값: 입력 문자열에서 구문 분석된 숫자 값은 함수에 의해 긴 정수로 반환됩니다.
예외: 변환을 완료할 수 없거나 입력 문자열의 문자가 유효하지 않은 경우 함수는 예외를 발생시킵니다. 변환을 수행할 수 없는 경우 가능한 예외는 다음과 같습니다. 표준::invalid_argument 그리고 표준::범위 밖 변환된 값이 오랫동안 표현 가능한 범위보다 큰 경우.
사용 사례:
표준::스톨() 문자열 형식으로 사용자로부터 받은 숫자 입력을 숫자 유형으로 변환하여 추가 처리가 가능하도록 하는 데 유용합니다.
데이터 표현으로 문자열을 포함하는 파일에서 숫자 데이터를 읽습니다.
데이터 유효성 검사에는 사용자 입력이 긴 숫자를 정확하게 나타내는지 확인하고 확인하는 과정이 포함됩니다.
예제 프로그램 1:
의 사용법을 설명하기 위해 예를 들어 보겠습니다. std::스톨 함수 C++에서.
#include #include int main() { std::string numStr = '12345'; try { long result = std::stol(numStr); std::cout << 'Converted value: ' << result << std::endl; } catch (const std::invalid_argument& e) { std::cerr << 'Invalid argument: ' << e.what() << std::endl; } catch (const std::out_of_range& e) { std::cerr << 'Out of range: ' << e.what() << std::endl; } return 0; }
산출:
설명:
- 라는 문자열 변수 숫자Str 프로그램 시작 시 '12345' 값으로 초기화됩니다.
- 코드는 try 블록으로 이동하여 그 안에 포함된 명령문을 실행하려고 시도한다는 신호를 보냅니다. 여기서는 잠재적인 예외를 다룹니다.
- 프로그램이 다음을 사용하려고 시도합니다. 표준::스톨() 문자열 numStr을 try 블록 내에서 긴 정수로 변환합니다.
- 변환이 성공하면 결과는 변수 result에 보관됩니다.
- 성공적으로 변환된 숫자는 프로그램에 의해 표준 출력으로 인쇄됩니다.
- catch 블록 중 하나는 변환 중에 발생하는 모든 예외를 처리합니다.
- 예외가 std::invalid_argument 유형인 경우 인수가 유효하지 않다는 오류 메시지가 인쇄됩니다.
- 예외가 std::out_of_range 유형인 경우 변환 결과가 유효한 범위를 벗어났다는 오류 메시지가 인쇄됩니다.
- 프로그램은 성공적인 실행을 의미하는 0을 운영 체제에 반환하고 주 함수는 종료됩니다.
간단히 말해서, 코드는 표준::스톨() 문자열 '12345'를 긴 정수로 변환하는 try 블록 내부의 함수입니다. 변환이 성공하면 결과가 인쇄됩니다. 예외를 캡처하고 발생하는 경우 관련 오류 메시지를 인쇄합니다(잘못된 인수로 인해 또는 결과가 범위를 벗어났기 때문에).
알파벳 숫자
마지막으로 프로그램은 성공적인 완료를 의미하는 0을 반환합니다.
예제 프로그램 2:
사용법을 설명하기 위해 또 다른 예를 들어보겠습니다. std::스톨 함수 C++에서.
#include #include int main() { std::cout << 'Enter numeric strings to convert to long integers (type 'exit' to end): '; while (true) { std::string userInput; std::cout <> userInput; if (userInput == 'exit') { std::cout << 'Exiting program. Goodbye! '; break; } try { long result = std::stol(userInput); std::cout << 'Converted Value: ' << result << std::endl; } catch (const std::invalid_argument& e) { std::cerr << 'Error: Invalid argument in input '' << userInput << '': ' << e.what() << std::endl; } catch (const std::out_of_range& e) { std::cerr << 'Error: Out of range for input '' << userInput << '': ' << e.what() << std::endl; } } return 0; }
산출:
설명 :
- 이 예에서는 변환할 문자열 값을 입력하라는 메시지가 사용자에게 표시됩니다.
- 애플리케이션은 사용자가 입력할 때까지 계속해서 사용자 입력을 받아들입니다. '출구' while 루프를 사용합니다.
- 입장 '출구' 이 프로그램은 작별 인사 메시지를 인쇄하고 루프를 종료합니다.
- 그렇지 않은 경우 사용을 시도합니다. 표준::스톨 입력을 long으로 변환합니다.
- 변환이 성공하면 변환된 값이 인쇄됩니다.
- 예외(잘못된 인수, 범위 초과)를 포착하고 오류 메시지를 인쇄한 후 계속됩니다.
- 새로운 사용자 입력을 기다리는 동안 루프는 다음 반복으로 이동합니다.