c언어 scanf로 원하는 자료형만 입력받고싶을때....

c언어 scanf로 원하는 자료형만 입력받고싶을때....

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

안녕하세요
첫번째)
값을 입력해주세요 : -5
잘못된 입력입니다!
값을 입력해주세요 : 5.0
잘못된 입력입니다!
값을 입력해주세요 : 5.25
잘못된 입력입니다!
값을 입력해주세요 : 5.25
잘못된 입력입니다!
값을 입력해주세요 : 5
입력완료!

두번째)

값을 입력해주세요 : -5
잘못된 입력입니다!
값을 입력해주세요 : 5.0
잘못된 입력입니다!
값을 입력해주세요 : 5.257
잘못된 입력입니다!
값을 입력해주세요 : abc
잘못된 입력입니다!
값을 입력해주세요 : 5.27
입력완료!


 이런식으로 입력함수(scanf 등등)를 통해 양의 정수만 입력받는 함수(첫번째) 소수점 두자리수인 실수를 입력받는  함수(두번째)를 만들어야하는데 어떻게 할 방법이 없을까요??ㅠㅠㅠ



profile_image 익명 작성일 -

C는 콘솔에서 사용자 입력을 받는 등의 기능을 위해 만들어진 언어가 아닙니다.

C의 입력은 전적으로 사용자가 개발자의 의도에 완벽히 부합한 입력을 준다는 가정 하에 만들어져 있습니다.

질문자님이 원하는 대로 하려면, 두가지 방법이 있습니다.

1. 다른 언어를 쓴다

- 제일 빠르고 간단합니다. 제일 정석에 가까운 방법이고요. 통나무를 자르는 데 식칼은 적합하지 않습니다.필요에 맞는 도구를 써야지요.

2. C 내에서 어찌저찌 해본다

우선 입력을 문자열로 받습니다.(버퍼 크기도 조심해야겠지요?)

이후, 파싱을 시도해서 오류가 나면 입력을 다시 받습니다.

(C언어)scanf_s C6271 에러

... 문자 month를 입력받고 switch 문을 통해 계절을 출력하도록 했는데, scanf_s문에는 C6271애러가 뜨고 실행 결과 저렇게 1....12만 뜨고 printf문은...

c언어 scanf로 입력받을떄

... 연산을 c언어로 짜려고합니다 그냥 초보자 수준으로 하려고하는데요 scanf로 숫자 8자리의 2진수를 입력받고 싶습니다 00000001 을...

사용할 scanf로 먼저 입력받고

scanf로 먼저 두 개의 정수를 입력 받고 while(1)로 조건문 2개를 실행하려고 하는데 scanf 를 while문 안에 넣어야 하냐요? 사실 뭘 하든 ㄱ코드가 안돌아가...

c언어 scanf에서 scanf("%d\n", &x)...

제목 그대로 c언어에서 scanf("%d\n", &x); 하면 어떻게... 문자는 입력 버퍼에 그대로 남겨지게 됩니다. scanf 의 서식에 %c 나 %[ ] 서식을 쓸 말고는 공백을 넣을...

c언어 scanf

... -> int 자료형으로 a라는 변수를 정의 scanf("%d,"&a); -> 값을 입력받기를 기다림. 여기서 사용자의 입력이... 프로그램이 원하는 수가 정수인지, 문자인지...