munhwa0605   2년 전

안녕하세요.

질문이 있습니다.

C++을 이용할 때

입력이 

1번 케이스 : 1 22 3 54 77 8

2번 케이스 : 2 4 55 64 25 73 124 7477 2

이런식으로 각 숫자의 자리수도 알려주지 않고, 숫자의 갯수도 알려주지 않을 때

숫자를 가지고 알고리즘을 짜는 문제가 주어진다면

입력을 어떻게 받으시나요?


검색해보니

do {
cin >> temp;
printf("%d ", temp);
                
} while(getc(stdin) == ' ')

와 같은 방식이 있길래 해보니 에러가 나네요.


또 찾아보니 문자열로 받아서 띄어쓰기 기준으로 나누는것도 말씀하시던데

입력 받는 함수랑 아래와 같이 나누는 부분이 매칭이 안되는지 에러가 납니다.

    char s1[30] = "The Little Prince";  // 크기가 30인 char형 배열을 선언하고 문자열 할당
    char *ptr = strtok(s1, " ");      // " " 공백 문자를 기준으로 문자열을 자름, 포인터 반환
    while (ptr != NULL)               // 자른 문자열이 나오지 않을 때까지 반복
    {
        printf("%s\n", ptr);          // 자른 문자열 출력
        ptr = strtok(NULL, " ");      // 다음 문자열을 잘라서 포인터를 반환
    }


혹시 방법을 아시면 조언 부탁드립니다.


댓글을 작성하려면 로그인해야 합니다.