소개:
인쇄() 그리고 스캔프() 다음을 수행하는 C 언어에 내장된 라이브러리 함수입니다. 형식화된 입력 그리고 형식화된 출력 기능. 이러한 함수는 다음에서 정의되고 선언됩니다. stdio.h 헤더 파일 . 그만큼 '에프' ~에 printf 그리고 스캔프 약자 '포맷' . 따라서 두 기능 모두 프린트프() 그리고 스캔프() 형식 문자열 내의 코드를 사용하여 출력 또는 입력 값의 형식을 지정하는 방법을 지정합니다. 사용할 헤더 파일을 가져와야 합니다. 프린트프() 그리고 스캔프() :
#include
이 기사에서는 printf()와 scanf()의 차이점에 대해 설명하지만 차이점을 논의하기 전에 printf()와 scanf()에 대해 구문과 예제를 알아야 합니다.
인쇄():
그것 인쇄물 사이의 무엇이든 큰따옴표 ~와 함께 형식 지정자 %c, %d,%f, 등을 사용하여 변수나 상수의 값을 표시하고 다음과 같은 이스케이프 시퀀스 문자를 사용할 수도 있습니다. , ~을 위한 개행, 그리고 가로 탭 , 각각.
Node.js Base64 디코드
통사론:
printf('(string) %format_specifier (string)',variable);
스캔프():
이를 통해 사용자가 콘솔의 키보드를 통해 입력한 하나 이상의 값을 읽을 수 있습니다. 우리는 많이 배치할 수 있습니다 형식 지정자 형식이 있든 없든 우리가 원하는 만큼의 입력을 얻을 수 있습니다.
통사론:
scanf(%format_specifier, &pointer_to_variable);
형식 지정자 문자열:
첫 번째 매개변수에는 printf 그리고 스캔프 , 우리는 통과 형식 문자열 또는 형식 지정자 문자열 , 사용자가 입력할 값 유형을 지정합니다.
데이터 형식 | 변환 | 형식 문자열 |
---|---|---|
정수 | 짧은 정수 | %d 또는 %i |
부호 없는 짧은 | % 안에 | |
오랫동안 서명한 | %ld | |
오랫동안 서명되지 않은 | % 루 | |
부호 없는 16진수 | %x | |
부호 없는 8진수 | %영형 | |
진짜 | 뜨다 | %f 또는 %g |
더블 | %lf | |
서명된 문자 | %씨 | |
서명되지 않은 문자 | %씨 | |
끈 | %에스 |
예를 들어, 사용자가 다음을 입력하면 이십 입력으로 이십 는 십진수 값 , 우리는 다음을 사용하여 C의 모든 십진수 값을 지정합니다. %d 형식 지정자 . 비슷하게, 부동 소수점 값 다음을 사용하여 지정됩니다. %에프 .
Printf() 및 Scanf()의 기본 코드:
예시 1:
#include int main() { int a, b; int sum = 0, sub = 0, mul = 0; printf('Please enter the two values:'); /* Read input */ scanf('%d%d', &a, &b); sum = a+b; sub = a-b; mul = a*b; /* Print output */ printf('The sum = %d sub = %d mul = %d', sum, sub, mul); return 0; }
산출:
Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48
설명:
배쉬 배열
위 프로그램에서 우리는 스캔프() 콘솔에서 입력을 읽고 변수에 저장합니다. a & b. 그 후에는 다음과 같은 산술 연산을 수행합니다. 덧셈 , 빼기 , 그리고 곱셈 나중에 결과를 세 개의 새로운 변수(Sum, Sub, Mul). 마지막으로 printf() 함수 , 결과를 인쇄하고 있습니다.
예 2:-
#include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; }
위 프로그램에서, 스캔프() 우리가 지정했기 때문에 하나의 변수를 전달하더라도 프로그램에서 두 개의 입력을 읽습니다. 두 가지 형식 지정자 . 항상 기억하세요. 스캔프()/프린트프() 모든 형식 지정자 우리가 전달하는 값은 동일해야 합니다. 그렇지 않으면 예상치 못한 런타임 오류가 발생할 수 있습니다.
예시 3:
int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; }
산출:
5 Execution finished...
설명:
위 프로그램에서, 스캔프() 우리가 지정했기 때문에 사용자로부터 단 하나의 입력만 읽습니다. 하나의 형식 지정자 . 따라서 이 예에서 우리는 입력 수에 따라 어떤 입력도 사용되지 않을 것이라고 결론을 내립니다. 형식 지정자 .
예시 4:
#include int main() { int a; scanf('%d', a); printf('Execution finished'); }
산출:
6 Segmentation fault
설명:
위 프로그램에서는 변수의 값을 스캔프() 변수 주소 대신. 그것은 다음으로 이어질 것입니다 런타임 에러 . Linux에서는 분할 오류 오류가 발생합니다.
sqrt 자바 수학
예시 5:
#include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); }
산출:
the value of a = 10, the value of b = 20
설명:
위 프로그램에서, printf 형식 문자열을 스캔하면 형식 지정자(%d) 우리가 전달하는 실제 값으로 프린트프() . 즉, 첫 번째 형식 지정자는 우리가 전달한 첫 번째 값으로 대체됩니다. 프린트프(), 등등.
Printf()와 Scanf()의 기본 차이점
printf와 scanf의 몇 가지 차이점은 다음과 같습니다.