C \ C++
[C] 출력과 입력(printf, scanf , scanf_s)
인디아나쥰이
2020. 11. 2. 16:47
출력
데이터를 출력 하기 위해서는 "printf" 라는 함수를 사용한다.
형식
printf("서식", 데이터);
| 서식 | 데이터 타입 | 비고 |
| %d | int | 부호 있는 10진수 정수 |
| %u | unsigned int | 부호 없는 10진수 정수 |
| %o | int | 8진수 |
| %x | int | 16진수 정수 소문자 |
| %X | int | 16진수 정수 대문자 |
| %f | float | 실수 |
| %lf | double | 실수 |
| %e | florat,double | 부동소수점 e(소문자) 방식 실수 |
| %E | float,double | 부동소수점 E(대문자) 방식 실수 |
| %c | char | 문자 |
| %s,%S | char*,char[] | 문자열 |
| %p | void* | 포인트형 |
데이터에는 변수 혹은 상수를 넣어서 출력을 한다.
예제
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <stdio.h>
void main()
{
int nNum = -10;
float fNum = 12345.6789123f;
double dbNum = 89789.123456f;
char ch = 'H';
char chString[20] = "Hello World";
printf("%%d %d\n", nNum);
printf("%%u %u\n", nNum);
printf("%%o %o\n", nNum);
printf("%%x %x\n", nNum);
printf("%%X %X\n", nNum);
printf("%%f %f\n", fNum);
printf("%%lf %lf\n", dbNum);
printf("%%e %e\n", dbNum);
printf("%%E %E\n", dbNum);
printf("%%c %c\n", ch);
printf("%%s %s\n", chString);
}
|
cs |
입력
데이터를 입력받기 위해서는 "scanf" 라는 함수를 사용한다.
※ Visual Studio 사용시
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.
이런 에러가 발생한다면 다음과 같이 하면 된다.
1. scanf대신 scanf_s를 사용한다.
2. "#define _CRT_SECURE_NO_WARNINGS" 추가한다.
형식
scanf("서식", &변수(변수주소));
| 서식 | 데이터 타입 | 비고 |
| %d | int | 부호 있는 10진수 정수 |
| %u | unsigned int | 부호 없는 10진수 정수 |
| %o | int | 8진수 |
| %x | int | 16진수 정수 소문자 |
| %f | float | 실수 |
| %lf | double | 실수 |
| %e | float | 부동소수점 e방식 실수 |
| %c | char | 문자 |
| %s,%S | char*,char[] | 문자열 |
scanf 함수는 서식에 맞춰서 변수주소로 접근해서 데이터를 입력한다.
그로인해 변수앞에 변수의 주소값을 지칭하는 "&"을 추가한다.
예제
|
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void main()
{
int nNum1, nNum2, nNum3, nNum4;
float fNum1, fNum2;
double dbNum;
char ch = 'H';
char chString[20] = "Hello World";
printf("%%d : ");
scanf("%d", &nNum1);
while (getchar() != '\n');
printf("%%u : ");
scanf("%u", &nNum2);
while (getchar() != '\n');
printf("%%o : ");
scanf("%o", &nNum3);
while (getchar() != '\n');
printf("%%x : ");
scanf("%x", &nNum4);
while (getchar() != '\n');
printf("%%f : ");
scanf("%f", &fNum1);
while (getchar() != '\n');
printf("%%lf : ");
scanf("%lf", &dbNum);
while (getchar() != '\n');
printf("%%e : ");
scanf("%e", &fNum2);
while (getchar() != '\n');
printf("%%c : ");
scanf("%c", &ch);
while (getchar() != '\n');
printf("%%s : ");
scanf("%s", chString); // 문자열은 chString 변수 자체가 주소이기 때문에 &를 제외합니다.
printf("%%d %d\n", nNum1);
printf("%%u %u\n", nNum2);
printf("%%o %o\n", nNum3);
printf("%%x %x\n", nNum4);
printf("%%f %f\n", fNum1);
printf("%%lf %lf\n", dbNum);
printf("%%e %e\n", fNum2);
printf("%%c %c\n", ch);
printf("%%s %s\n", chString);
}
|
cs |
728x90
반응형