-
[C] 출력과 입력(printf, scanf , scanf_s)C \ C++ 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* 포인트형 데이터에는 변수 혹은 상수를 넣어서 출력을 한다.
예제
123456789101112131415161718192021222324#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 함수는 서식에 맞춰서 변수주소로 접근해서 데이터를 입력한다.
그로인해 변수앞에 변수의 주소값을 지칭하는 "&"을 추가한다.
예제
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758#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반응형'C \ C++' 카테고리의 다른 글
[c++ error] warning: range-based for loop is a C++11 extension (0) 2021.01.19 [C++] range-based for statement (0) 2021.01.19 [C++]ERRORS (0) 2021.01.17 [C언어] 입력버퍼 (0) 2021.01.01 [C] 자료형 (Data Type) (1) 2020.11.02