일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- set
- Array
- priority_queue
- 아두이노
- Deque
- C언어
- Arduino
- 컴퓨터 그래픽스
- 아두이노 소스
- 운영체제
- arduino compiler
- list
- 라인트레이서
- Stack
- WinAPI
- Algorithm
- directx
- 자료구조
- c++
- vector
- map
- LineTracer
- 시스템프로그래밍
- Visual Micro
- 아두이노 컴파일러
- 통계학
- html
- 수광 소자
- queue
- stl
- Today
- Total
Kim's Programming
C언어 - 입력함수인 scanf를 써보자 본문
이번 포스팅에서는 scnaf 함수에 대해서 알아보도록 하겠습니다. scanf는 stdio 헤더에 속해있는 함수이며 문자, 숫자, 문자열 등을 입력받을 수 있습니다. 무선 Scanf의 구조부터 알아 보겠습니다. 포맷 스트링의 종류는 이전 포스트에서 보실 수 있습니다.
1
2 |
scanf("포맷스트링",변수);
scanf("포맷 스트링 포맷스트링,",&변수 &변수); |
cs |
scanf함수는 printf와 같이 포맷 스트링과 변수 1:1입니다. 우선 간단한 예시로 사용 법을 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11 |
#include<stdio.h>
int main()
{
int num_1=0;
// 변수입력
printf("num_1에 넣을 값을 입력하세요\n");
scanf("%d",num_1);//scanf를 이용 num_1변수에 입력
printf("num_1에 들어간 값을 %d입니다.\n",num_1);//scanf를 이용하여 입력 받은 값 확인
return 0;
} |
cs |
간단한 소스를 짜보았습니다. 입력을 받고 출력을 해주는 소스입니다. 입력을 받을 때도 printf와 같은 방식대로 변수와 포맷 스트링을 일치 시켜야 합니다. 일치 시키지 않으면 값이 들어오지 않습니다. 또한 변수의 범위를 벗어나는 값을 입력 받은 경우도 제대로 입력이 되지 않습니다.
다음과 같은 결과를 얻을 수 있습니다.
추가. VIsual studio 2012부터 컴파일이 안된다면?
2012버젼 이상의 컴파일러에서 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdio.h(283) : 'scanf' 선언을 참조하십시오.
라는 오류가 뜨는경우가 있습니다.(2012부터 보안때문에 scanf뿐만 아니라 여러 함수들이 같은 오류를 내는 경우 이 방법으로 해결 할 수 있습니다.) 이렇게 뜬다면 해당 함수를 사용하기 위하여 인클루드한 줄 위에다가 #define _CRT_SECURE_NO_WARNINGS 추가하면 해결 할 수 있습니다. 오류 메세지를 살 펴 봤을때 scanf_s를 사용하는걸 고려하라고 되어있으나 scanf_s와 scanf는 조금 다른 함수이므로 해결 방법을 추가하였습니다.
'Programming > C' 카테고리의 다른 글
C언어 - 제어문! 소스 일부를 통제한다!(2/2) (0) | 2015.07.15 |
---|---|
C언어 - 제어문! 소스 일부를 통제한다!(1/2) (2) | 2015.07.15 |
C언어 - 출력함수인 printf를 써보자 (0) | 2015.07.11 |
C언어 변수 - 변수란 무엇일까 (0) | 2015.07.10 |
C언어의 기본 Hello World를 출력해보자 (0) | 2015.07.09 |