C ++에서 cin을 사용하여 int 변수에 char 및 int 입력

SumranMS

나중에 파일에서 유효성을 검사하는 사용자로부터 정수 ID를 가져 오는 코드를 작성 중입니다. 이제 cin에 유효한 입력을 입력하지 않으면 (분명히) 작동하지 않습니다. 다음과 같은 샘플 코드를 첨부했습니다.

std::cout << "Enter ID : " << std::endl;
std::cin >> id;

그렇게 간단합니다. 이제 입력과 같은 a또는 다른 문자를 입력 하면 cin.fail ()을 사용하여 오류를 확인할 수 있지만 입력을 입력 11a하면 작동하지 않는 것 같습니다. 인터넷에서 많이 검색했지만 적절한 해결책을 찾지 못했습니다.

분파

먼저 Stack에 오신 것을 환영합니다. 이 시도

#include <iostream>
#include <string>

int main() {

    std::string theInput;
    int inputAsInt;

    std::getline(std::cin, theInput);

    while(std::cin.fail() || std::cin.eof() || theInput.find_first_not_of("0123456789") != std::string::npos) {

        std::cout << "Error" << std::endl;

        if( theInput.find_first_not_of("0123456789") == std::string::npos) {
            std::cin.clear();
            std::cin.ignore(256,'\n');
        }

        std::getline(std::cin, theInput);
    }

    std::string::size_type st;
    inputAsInt = std::stoi(theInput,&st);
    std::cout << inputAsInt << std::endl;
    return 0;
}

나는 그것을 시각화하기 위해 출력을 만들었다. "inputAsInt"변수는 추가 작업이 필요한 변수입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

sscanf를 사용하여 c에서 char를 int로 변환

분류에서Dev

이 코드가 cin과 충돌하지 않는 이유는 무엇입니까? int 변수 C ++에 입력 된 char

분류에서Dev

사용자 입력에서 int 또는 char / string 구별

분류에서Dev

'std :: cin'을 사용하여 정수 변수에 'char'를 입력 할 때 정의되지 않은 동작

분류에서Dev

C의 int 입력에서 char 구문 분석

분류에서Dev

C char 배열에서 int 및 char를 구문 분석하는 방법은 무엇입니까?

분류에서Dev

C ++에서 int main (int argc, char ** argv) 사용

분류에서Dev

while 루프 및 cin char, int

분류에서Dev

string, int 및 int에 대해 C에서 "String"(char 배열) 구문 분석

분류에서Dev

std :: vector <int>에서 char [] C ++로 변환

분류에서Dev

typecasting을 사용하여 char를 int로 변환하면 C에서 1을 49로, 0을 48로 만듭니다.

분류에서Dev

C #을 사용하여 Oracle DB에서 Int 값 반환

분류에서Dev

for_each 및 람다 함수를 사용하여 vector <int>에서 변수 빼기

분류에서Dev

int 및 chars C ++에 값을 삽입하는 파일에서 읽기

분류에서Dev

C #에서 int 유형을 char 유형으로 변경

분류에서Dev

C ++에서 "char"만 사용하여 두 입력 파일 비교

분류에서Dev

C ++의 파일에서 구분 기호를 사용하여 int 및 string 읽기

분류에서Dev

read ()에서 int로 입력을 변환하는 방법

분류에서Dev

PHP에서 int를 char로 변환하면 C #에서 다른 출력이 나타납니다.

분류에서Dev

C char []와 int 사이의 int 함수에서 데이터 유형 충돌

분류에서Dev

C에서 random (int) 및 randomize ()

분류에서Dev

테스트 메서드, C #에 int [,] 및 int 값을 제공하는 방법

분류에서Dev

Java에서 하나의 스캐너 객체로 사용자 입력 int 및 문자열을 가져올 수없는 이유는 무엇입니까?

분류에서Dev

Int를 사용하여 Swift에서 Int enum 유형의 Objective-C 속성을 설정할 수 있습니까?

분류에서Dev

C ++에서 unsigned char 및 unsigned int로 함수를 오버로딩하면 모호함

분류에서Dev

char에서 int로 변환

분류에서Dev

char에서 int로 변환

분류에서Dev

char *에서 int로 변환

분류에서Dev

cin.get ()을 사용하여 C ++의 입력 스트림에서 원하지 않는 문자 삭제

Related 관련 기사

  1. 1

    sscanf를 사용하여 c에서 char를 int로 변환

  2. 2

    이 코드가 cin과 충돌하지 않는 이유는 무엇입니까? int 변수 C ++에 입력 된 char

  3. 3

    사용자 입력에서 int 또는 char / string 구별

  4. 4

    'std :: cin'을 사용하여 정수 변수에 'char'를 입력 할 때 정의되지 않은 동작

  5. 5

    C의 int 입력에서 char 구문 분석

  6. 6

    C char 배열에서 int 및 char를 구문 분석하는 방법은 무엇입니까?

  7. 7

    C ++에서 int main (int argc, char ** argv) 사용

  8. 8

    while 루프 및 cin char, int

  9. 9

    string, int 및 int에 대해 C에서 "String"(char 배열) 구문 분석

  10. 10

    std :: vector <int>에서 char [] C ++로 변환

  11. 11

    typecasting을 사용하여 char를 int로 변환하면 C에서 1을 49로, 0을 48로 만듭니다.

  12. 12

    C #을 사용하여 Oracle DB에서 Int 값 반환

  13. 13

    for_each 및 람다 함수를 사용하여 vector <int>에서 변수 빼기

  14. 14

    int 및 chars C ++에 값을 삽입하는 파일에서 읽기

  15. 15

    C #에서 int 유형을 char 유형으로 변경

  16. 16

    C ++에서 "char"만 사용하여 두 입력 파일 비교

  17. 17

    C ++의 파일에서 구분 기호를 사용하여 int 및 string 읽기

  18. 18

    read ()에서 int로 입력을 변환하는 방법

  19. 19

    PHP에서 int를 char로 변환하면 C #에서 다른 출력이 나타납니다.

  20. 20

    C char []와 int 사이의 int 함수에서 데이터 유형 충돌

  21. 21

    C에서 random (int) 및 randomize ()

  22. 22

    테스트 메서드, C #에 int [,] 및 int 값을 제공하는 방법

  23. 23

    Java에서 하나의 스캐너 객체로 사용자 입력 int 및 문자열을 가져올 수없는 이유는 무엇입니까?

  24. 24

    Int를 사용하여 Swift에서 Int enum 유형의 Objective-C 속성을 설정할 수 있습니까?

  25. 25

    C ++에서 unsigned char 및 unsigned int로 함수를 오버로딩하면 모호함

  26. 26

    char에서 int로 변환

  27. 27

    char에서 int로 변환

  28. 28

    char *에서 int로 변환

  29. 29

    cin.get ()을 사용하여 C ++의 입력 스트림에서 원하지 않는 문자 삭제

뜨겁다태그

보관