반응형
scanf함수가 오작동할 때 아래 참고.
https://ansan-survivor.tistory.com/899
c언어에서 기본적으로 scanf함수를 이용해 유저가 값을 입력하면 ascii 코드로 들어간다.
즉, 만약 1을 입력하면 실제 정수(int) 1이 아니고, "1"의 ascii 코드인 0x31 (Hex코드) 가 들어가게 된다.
그러나 입력한 값을 연산하기 위해서는 실제 int 타입 또는 float 타입으로 변경하여 진행해야 한다.
아래 코드는 입력받은 ascii를 int나, float로 변환시켜주는 예제 코드이다.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*
atoi 함수, atoi 함수, atof함수
함수 원형:
int atoi(const char * str); Aschii코드 -> int
iong atol(const char * str); Aschii코드 -> long
double atof(const char * str); Aschii코드 -> float 변환
※ 주의!
이 함수들은 모두 stdlib.h 에 정의되어 있으므로 불러와야 함 !!!!!!!!!!!!!!
*/
//예제.
int main()
{
char str[20];
printf("정수입력: ");
scanf("%s", str);
printf("%d \n", atoi(str));
printf("실수입력: ");
scanf("%s", str);
printf("%g \n", atof(str));
return 0;
}
반응형
(결과)
유저가 정수와 실수를 입력하면 해당 값이
반응형
'C언어 \ C++' 카테고리의 다른 글
[C언어] c언어 char -> int 변환 (C언어 문자열 정수 변환, 아스키코드 변환) (0) | 2021.11.15 |
---|---|
[C언어] C언어 enum 사용법 (열거형 상수 선언) (0) | 2021.09.26 |
[C언어] C언어를 통한 메모리 구조 이해, c언어 동작 순서 이해 (0) | 2021.09.24 |
[C언어] 2차원 오름차순 행렬 sort 정렬, C lanugae sort for array (1) | 2021.09.20 |
[C언어] 홀수 짝수 구분하여 sort시키기 예제 (랜덤수 생성, 비트연산) (0) | 2021.09.20 |