• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

scanf 입력을 받을 때

19.11.02 23:47 작성 조회수 165

2

char a[20]에서 a가 이미 주소값을 나타내는데, scanf에서 a대신 &a를 써도 무방한건가요? 잘 작동하는 원리가 궁금합니다.

답변 3

·

답변을 작성해보세요.

0

scanf("%s", a); 밑에 코드를 모두 주석처리하고 a배열을 printf("%s", a)로 출력해서 값이 들어오는지 확인해 보시기 바랍니다. 혹시 제가 드린 소스코드도 한 번 해보시구요. 제가 드린것도 같은 반응을 한다면 컴파일러의 문제가 아닌가 싶습니다.

컴파일러를 업해보시기 바랍니다.

도구-컴파일러 설정 에서 "컴파일러 추가 명령"을 체크하고 "-std=c++14"를 써 넣으세요. 그러면 14버젼의로 업그레드 됩니다.(아래 그림처럼 하세요.) 

참고로 기존 질문에 재질문을 하면 저에게 메일로 신호가 오지 않아 질문을 했는지 확인하기가 어렵습니다. 차라리 새 질문으로 해주시면 좋겠습니다.

0

Seoyoon Park님의 프로필

Seoyoon Park

2019.12.11

코드 똑같이 했는데 freopen을 해도 콘솔에서 계속 입력하길 기다립니다. freopen에 주석처리를 하고 scanf를 통해 주민등록번호를 입력하면 엔터를 쳐도 계속 입력받는 화면이 나오다가 문자를 치고 엔터를 치면 뜬금없는 숫자가 나옵니다... 

0

컴파일러에서 배열의 시작주소를 a 또는 &a를 모두 사용할 수 있도록 설계된게 아닌가 싶습니다. 저도 둘 중 아무거나 사용합니다. scanf("%s", a); 이렇게 사용하는게 정석이니 이렇게 사용하시기 바랍니다.