inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

알고리즘 교안 질문

339

창신동 장첸

작성한 질문수 115

0

p.22 입력이 계속해서 이어질때

1안)

 문자를 입력했을 때 1이라는 문자열이 줄바꿈이 되면서 계속 출력됩니다.

2안)

 문자를 한번 입력하고 바로 프로그램이 끝납니다.

 

두 안에 대해 위와같은 차이를 보이는데 정상인가요?

C++ 코테 준비 같이 해요!

답변 1

0

큰돌

1. scanf로 할 때와 cin으로 할 때 맞으신가요?

2. 문자를 넣으셨다는데 int형으로 선언을 한 것이기 때문에 숫자를 넣어야 하는데 숫자를 넣으신거 맞나요?

3. 스샷 부탁드립니다.

 

감사합니다.

강사 큰돌 올림.

0

창신동 장첸

감사합니다 선생님. 조언주신대로 문자를 입력하지 말고 숫자를 입력하니 원하는 결과가 잘 나왔습니다.

하지만, 문자(예: 'a')또한 아스키코드 정수값이라서 괜찮을 것이라 생각했는데, 1안 과 2안 모두 예상과는 다른 결과를 보이고 있습니다. 왜 이런 결과를 보이는지 궁금합니다.

0

큰돌

안녕하세요. ㅎㅎ

아스키코드는 문자로 받았고 그 이후 숫자로 변환했을 때 아스키코드가 출력이 되는 겁니다. 

자, 예를 들어 

 

#include <bits/stdc++.h>

int a; 

using namespace std; 

int main() {  

cin >> a; 

cout << a << '\n';

    return 0;

 

}

다음과 같은 코드에서 a를 입력하면 0이 됩니다.  이는 잘못된 입력값 때문입니다. 

C++의 경우 입력에 대한 부분이 잘못되었다고 판단되면 값에 0을 쓰고 오류 비트를 설정합니다. 추출 결과 값이 너무 크거나 작아서 값을 유지할 수 없으면 std::numeric_limits::max() 또는 std::numeric_limits::min()이 기록되고 오류 비트 플래그가 설정됩니다. (C++11이상부터 이렇게 됩니다.)

 

감사합니다.

큰돌 올림.

0

창신동 장첸

답변 감사합니다!

1-E질문입니다!

0

533

2

3-L 틀린 부분 피드백 부탁드립니다.

0

836

2

1-A문제 순열재귀함수 질문입니다.

0

396

1

1-A 일곱난쟁이문제입니다

0

471

1

문제 풀 때 방향성에 대해

0

811

1

맥에서 vs code로 실행 관련 질문입니다

0

530

1

17071번 메모리 초과

0

390

1

1-C질문입니다!

0

428

2

2-B BFS 시간초과질문

0

638

2

1-O 13번 라인

0

447

1

6-J 놀이공원 문제 질문

0

390

1

구현관련 질문

0

492

1

강의 교안

0

322

1

실력을 더 올리고나서 강의를 보는 것이 맞을까요?

0

550

1

안녕하세요! 재귀함수에 관해서 질문드립니다

0

540

1

1-K

0

481

2

3-G번 질문있습니다.

1

481

3

3-C 실행 시간 질문드립니다.

0

504

1

4-A 문제 풀이 질문있습니다.

0

602

2

비트마스킹 연산자 "1의 보수" 영문 표기법

0

441

1

격자탐색 문제에서 BFS 시간복잡도 질문드립니다.

0

349

1

3-O go 함수 질문 드립니다.

1

453

2

4-A 출력 질문

0

308

1

1주차 1-O 질문드립니다

0

266

1