내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
printf 함수의 일반적인 형식은 printf(형식 제어, 출력 목록)입니다.
예를 들어:
printf("%d,%cn",i,c);
이는 "변환 제어 문자열" 또는 줄여서 "형식 문자열"이라고 하는 이중 아포스트로피로 묶인 문자열입니다. 여기에는 두 가지 정보가 포함됩니다.
① 형식문. 형식 선언은 "%"와 %d, %f 등과 같은 형식 문자로 구성됩니다. 그 기능은 출력 데이터를 지정된 형식으로 변환한 다음 출력하는 것입니다. 형식 선언은 항상 "%" 문자로 시작됩니다.
그중 d는 10진수 정수, c는 단일 문자, s는 여러 문자, f는 10진수, x는 16진수 형식의 출력, p는 16진수 형식으로 출력되는 인쇄 메모리 주소를 나타냅니다. 가변 주소 연산 기호 &를 사용합니다.
② 일반 문자. 일반 문자는 출력 중에 변경되지 않고 출력되어야 하는 문자입니다. 예를 들어, 위의 printf 함수에서 이중 쉼표 내의 쉼표, 공백 및 개행 문자에는 다른 문자도 포함될 수 있습니다.
프로그램이 출력해야 하는 데이터는 상수, 변수 또는 표현식일 수 있습니다.
- int data = 10;
- int chushu = 3;
- float result;
-
- result = (float)data/chushu;
scanf(형식 제어, 주소 테이블 열)
"형식 제어"의 의미는 printf 함수와 동일합니다. "주소 테이블 열"은 여러 개의 주소로 구성된 테이블 열이며, 변수의 주소일 수도 있고 문자열의 첫 번째 주소일 수도 있습니다.
printf 함수의 형식 선언과 유사하게 %로 시작하여 형식 문자로 끝나며, 중간에 추가 문자를 삽입할 수 있습니다.
scanf 함수는 다음 형식으로 다시 작성할 수 있습니다.
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
형식 선언 %f 외에도 형식 문자열에는 일부 일반 문자("a=", "b=" 및 "," 포함)도 있습니다.
메모:
scanf 함수의 "형식 제어" 뒤에는 변수 이름이 아닌 변수 주소가 와야 합니다.예를 들어, a와 b가 정수 변수인 경우 다음과 같이 쓰면
scaní("%f%f%f",a,b,c);
그것은 옳지 않아. "a,b,c"를 "&a,&b,&c"로 변경해야 합니다. 많은 초보자들이 이런 실수를 합니다.
"형식 제어 문자열"에 형식 선언 외에 다른 문자가 있는 경우 데이터 입력 시 해당 위치에 해당 문자와 동일한 문자를 입력해야 합니다.만약 있다면
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
데이터 입력시 해당 위치에 동일한 문자를 입력해야 합니다.즉, 입력
a=1,b=3,c=2 (입력 내용에 주의)
따라서 공백(공백을 입력하기 위해 개행 문자를 사용하는 경우 괜찮습니다)이나 쉼표 및 기타 기호를 scanf에 추가하지 말고 필요한 입력 데이터를 직접 작성하세요.
scanf("%d%d%f",&data,&data1,&data2);
"%c" 형식으로 입력 문자를 선언할 때 공백 문자와 "이스케이프 문자"의 문자는 유효한 문자로 입력됩니다. 예:
scanf("%c%c%c,&c1,&c2,&c3);
이 기능 실행 시 공백 없이 연속된 3개의 문자를 입력해야 합니다.
두 문자 사이에 공백을 삽입하는 것은 잘못된 것입니다.
공백과 개행도 문자입니다. 입력할 때 공백이나 개행을 사용할 수 없습니다.
숫자 데이터를 입력할 때 공백, 캐리지 리턴, Tab 키를 입력하거나 잘못된 문자(숫자 값에 속하지 않는 문자)가 나타나면 데이터가 끝난 것으로 간주됩니다. 예를 들어:
scanf("%d%c%f,&a,&b,&c);
올바른 입력은 1234h7.6입니다.
첫 번째 데이터는 %d 형식에 해당합니다. 1234를 입력하면 문자 'h'가 발생하므로 시스템에서는 값 1234 뒤에 숫자가 없는 것으로 간주합니다. 첫 번째 데이터는 여기서 끝나야 하므로 변수에 1234가 전송됩니다. ㅏ. %c는 한 문자만 입력하면 되기 때문에 시스템에서는 해당 문자의 입력이 끝난 것으로 판단하므로 입력 문자 '뒤에 공백을 추가할 필요는 없다. 시간'. 문자 'h' 뒤의 값은 변수 c로 전송되어야 합니다. 1230.26을 부주의로 인해 123o.26으로 잘못 입력한 경우 123 뒤에 문자 o가 나타나므로 숫자 데이터가 여기서 끝나는 것으로 간주되어 다음 문자는 읽혀지지 않습니다.
따라서 서로 다른 유형의 데이터를 입력할 때는 유형별로 해당하는 scanf 함수를 만들어야 합니다.
프로그램에 scanf 함수가 2개 이상 포함되어 있는 경우 후자의 scanf 함수는 이전 scanf 함수의 입력 뒤의 개행 문자를 자신의 입력으로 간주하므로 후자의 scanf 함수가 정상적으로 입력을 얻을 수 없게 되므로 반드시 사용해야 합니다. 두 scanf 함수 사이에 getchar()를 삽입하여 추가 개행 문자를 흡수합니다.
puts: printf와의 차이점
(1) 줄 바꿈을 자동으로 추가합니다.
(2).printf는 다양한 출력 패턴을 지원하며, 출력 문자열은 puts입니다.
getchar、putchar
입력 및 출력 연습:
1. 대문자 입력 후 소문자 출력
여기서는 ASCII 코드에 대한 지식을 활용합니다. 대문자에 해당하는 ASCII 코드 + 32는 소문자에 해당하는 ASCII 코드입니다.
따라서 코드 예제는 다음과 같습니다.
- #include<stdio.h>
-
- int main()
- {
- char a;
- char b;
-
- printf("请输入一个大写字母:");
- scanf("%c",&a);
- b = a+32;
- printf("其对应的小写字母为:%c",b);
-
- return 0;
- }