c언어 비주얼스튜디오 에서 scanf 함수 오류

c언어 비주얼스튜디오 에서 scanf 함수 오류

작성일 2023.04.16댓글 2건
    게시물 수정 , 삭제는 로그인 필요

#include <stdio.h>

struct student
{
int age;
int number[11];
};

int main()
{
struct student jun;

scanf("%d", &jun.age);
scanf("%d", jun.number);
printf("%d %d", jun.age, jun.number);

return 0;
}
위 코드는 구조체를 이용해서 학생 number와 age를 scaf 로  값을 받는 코드인데

왜 자꾸 예전부터 scanf 의 반환값이 무시되었다고 뜨면서 밑줄이 생기네요 
비주얼 스튜디오 에서 맨날이러던데 왜이러는건가요?


#c언어 비주얼스튜디오 #c언어 비주얼스튜디오 프로젝트 생성 #비주얼스튜디오 코드 c언어 #비주얼스튜디오 c언어 디버깅 #맥 비주얼스튜디오 c언어

profile_image 익명 작성일 -

scanf( ) 가 입력값을 검증하지 않기 때문에 오버플로우와 같은 현상이 발생할 수 있기 때문입니다.

scanf_s( )를 대신 사용해보세요

profile_image 익명 작성일 -

scanf함수는 첫 인자로 입력에 대한 format을 그 다음 인자부터는 format내에 인자만큼의 변수를 입력받아요.

하지만 scanf가 void형의 함수가 아니기 때문에 리턴값도 존재하는데 scanf 함수의 원형은 다음과 같습니다.

int scanf(const char *format, ...)

리턴값은 정상적으로 잘 입력받았을 시에 입력받은 인자의 개수를 리턴하며 실패시에는 EOF를 리턴하게됩니다.

하지만 위의 코드에서는 리턴에 대한 처리를 하지 않았으므로 반환값이 무시되었다는 경고가 뜨는것이구요.

scanf는 1개 이상의 인자는 받을 것이고 EOF는 -1로 판정되므로. 만약 반환값을 활용하고 싶다면

if(scanf("%d", &jun.age) < 0){ printf("나이 입력에 실패했습니다"); }

와 같이 사용할 수 있습니다.

출처: https://documentation.help/C-Cpp-Reference/scanf.html

C언어 scanfscanf_s의 차이

비주얼 스튜디오 c언어로 과제중인데 scanf로 하면 오류가 뜨고 scanf_s로 하면 정상적으로 잘 돌아가는데... 할당하는 함수입니다. 그러나 이 둘 사이에는 몇 가지...

C언어 비주얼스튜디오 오류질문...

단순연결 리스트 자료구조 구현해보려고하는데 책이랑 코드 똑같은데 ->랑 malloc에 왜 빨간줄이 뜰까요. main 함수가 있어야 합니다 수정한 코드입니다 <> <> <> > >

C언어 비주얼스튜디오 오류 경고

... // 이미지를 동일하게 만드는 함수이다. void... C:\\temp\\result.raw> 로 저장됨", L"출력창", NULL); } C언어 비주얼스튜디오입니다. 오류와...

C언어 비주얼스튜디오 오류

... // 이미지를 동일하게 만드는 함수이다. void... C:\\temp\\result.raw> 로 저장됨", L"출력창", NULL); } C언어 비주얼스튜디오입니다. 오류좀...

C언어 비주얼 스튜디오 오류 좀...

계속 선언되지 않은 식별자, 인수의 형식이 int라고 오류가 뜨는데 뭘... /* Visual C/C++ 에서 scanf_s() 함수에는 문자 입력 시 길이를 표시해...