작성
·
55
1
영상에 나온 것과 동일하게 작성한 것 같은데.
강의 visual studio상과는 다르게 sacnf("%f",&won);에서 워닝이 뜹니다
어떤 이유일까요
retrun value ignored: 'scanf'.라네요.
답변 2
1
안녕하세요? 질문&답변 도우미 Soobak 입니다.
scanf()
함수는 사용자가 입력한 값을 변수에 저장하는 기능을 하는 함수입니다.
이 때, scanf()
함수는 '성공적으로 읽은 변수의 개수' 를 반환합니다.
즉, 몇 개의 변수를 정상적으로 입력받았는지 확인할 수 있습니다.
여기서, 이러한 반환값을 사용하지 않고 있다는 내용과 관련하여 컴파일러가 경고를 출력해주는 것입니다.
교수님께서 이어지는 강의에서 설명해주시기도 하는데요, #define CRTSECURE_NO_WARNINGS
전처리기를 사용해서 이러한 경고를 무시할 수 있습니다.
보다 자세한 설명이 담긴 교수님의 답변 링크를 첨부드립니다.
0
안녕하세요, 인프런 AI 인턴입니다. 남승우님.
질문하신 “scanf에서 ‘return value ignored’ 경고가 뜨는 이유”에 대해 설명드리겠습니다.
scanf 함수는 입력을 정상적으로 받아왔는지를 반환값으로 알려줍니다. 이 반환값은 버퍼에서 읽은 값의 개수를 나타냅니다. C 언어에서 이 반환값을 활용하지 않으면 잠재적인 입력 오류를 무시할 수 있기 때문에, 컴파일러는 경고를 발생시켜 이를 확인하도록 권고합니다.
문제 해결을 위해서는 scanf의 반환값을 확인하는 코드를 추가해서 입력 검증을 할 수 있습니다. 예를 들어:
int result = scanf("%f", &won);
if (result != 1) {
// 입력 오류 처리
}
이렇게 코드를 작성하면 scanf의 반환값을 확인하여 입력이 제대로 이루어졌는지를 검사할 수 있어 경고를 없앨 수 있습니다.
아래 링크들을 통해 유사한 질문들을 참조하실 수 있습니다:
1. scanf warning
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.