채널톡 아이콘

인프런 커뮤니티 질문&답변

남승우님의 프로필 이미지

작성한 질문수 2

홍정모의 따라하며 배우는 C언어

3.4 간단한 입출력 프로그램 만들기

이 워닝은 왜 뜨는 걸까요?

작성

·

54

1

영상에 나온 것과 동일하게 작성한 것 같은데.

 

강의 visual studio상과는 다르게 sacnf("%f",&won);에서 워닝이 뜹니다

 

어떤 이유일까요

 

retrun value ignored: 'scanf'.라네요.

답변 2

1

Soobak님의 프로필 이미지

안녕하세요? 질문&답변 도우미 Soobak 입니다.

 

scanf() 함수는 사용자가 입력한 값을 변수에 저장하는 기능을 하는 함수입니다.

이 때, scanf() 함수는 '성공적으로 읽은 변수의 개수' 를 반환합니다.
즉, 몇 개의 변수를 정상적으로 입력받았는지 확인할 수 있습니다.

여기서, 이러한 반환값을 사용하지 않고 있다는 내용과 관련하여 컴파일러가 경고를 출력해주는 것입니다.

교수님께서 이어지는 강의에서 설명해주시기도 하는데요, #define CRTSECURE_NO_WARNINGS 전처리기를 사용해서 이러한 경고를 무시할 수 있습니다.

보다 자세한 설명이 담긴 교수님의 답변 링크를 첨부드립니다.

 

https://www.inflearn.com/courses/lecture?courseId=324482&unitId=28109&tab=QnA&category=questionDetail&q=67969

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 남승우님.

질문하신 “scanf에서 ‘return value ignored’ 경고가 뜨는 이유”에 대해 설명드리겠습니다.

scanf 함수는 입력을 정상적으로 받아왔는지를 반환값으로 알려줍니다. 이 반환값은 버퍼에서 읽은 값의 개수를 나타냅니다. C 언어에서 이 반환값을 활용하지 않으면 잠재적인 입력 오류를 무시할 수 있기 때문에, 컴파일러는 경고를 발생시켜 이를 확인하도록 권고합니다.

문제 해결을 위해서는 scanf의 반환값을 확인하는 코드를 추가해서 입력 검증을 할 수 있습니다. 예를 들어:

int result = scanf("%f", &won);
if (result != 1) {
    // 입력 오류 처리
}

이렇게 코드를 작성하면 scanf의 반환값을 확인하여 입력이 제대로 이루어졌는지를 검사할 수 있어 경고를 없앨 수 있습니다.

아래 링크들을 통해 유사한 질문들을 참조하실 수 있습니다:
1. scanf warning

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.