시작하기에 앞서 문자열로 예를 든 것일 뿐 조건만 맞는다면 다른 자료형도 출력이 가능하다.
그리고 scanf_s 같이 표준 입력 함수 이름 뒤에 _s가 붙은 이름들의 배경은 위의 글을 참고하면 된다.
입력 함수 및 객체 목차
문자 및 문자열 입력 함수 및 객체(띄어쓰기 입력 불가)
scanf
fscanf
cin(C++)
문자열 입력 함수(띄어쓰기 입력 가능)
gets
fgets
문자 입력 함수
getchar
getc
getch(conio.h 선언 필요)
fgetchar
fgetc
입력 함수 및 객체 요약
출력 함수 때보다 더 간단히 요약하면
띄어쓰기가 포함된 문자열을 입력할 때에는 gets, fgets
아니면 인수를 여러개 받을 수 있는 scanf, fscanf, cin을 사용하자
문자를 입력받을 경우
getch 이외 다 비슷하게 기능을 수행하지만 대중적(?)으로 사용하는 getchar을 쓰자
getch는 conio.h 헤더 포함을 선언해 주고 키를 누르는 순간 반응하길 원할 때 쓰자
스트림을 지정 해야할 경우
문자열의 경우 fscanf, fgets
문자의 경우 getc, fgetc 중 하나를 사용하면 된다.
문자열의 경우 띄어쓰기가 없다면 scanf(fscanf) 띄어쓰기가 있다면 gets(fgets)
문자의 경우 getchar(fgetc), getch를 주로 사용한다고 생각하자( ()은 스트림 지정시)
cin도 많이 사용하나 출력 함수 설명 때와 마찬가지로 scanf에 비해 느리다.
문자 및 문자열 입력 함수 및 객체(띄어쓰기 입력 불가)
특징
문자와 문자열 입력 가능('a', "a", "abc")
띄어쓰기 입력 불가
scanf
scanf예제
char ch;
char let;
char str[5];
// 문자 변수, 문자열 변수 상관없이 섞어서 입력 가능
// 인수(argument) 여러개 호출 가능
scanf("%c %c", &ch, &let);
scanf("%s", str);
// 대입 불가
//scanf('a', &let);
//scanf("abc", str);
printf("%c %c %s", ch, let, str);
scanf 출력
a b abc a b abc
fscanf
fscanf예제(띄어쓰기 입력 시)
char ch;
char let;
char str[5];
// 문자 변수, 문자열 변수 상관없이 섞어서 입력 가능
// 인수(argument) 여러개 호출 가능
fscanf(stdin, "%c %c", &ch, &let);
fscanf(stdin, "%s", str);
// 대입 불가
//scanf('a', let);
//scanf("abc", string);
printf("%c %c %s", ch, let, str);
fscanf 출력(띄어쓰기 입력 시)
a b ab c a b ab
cin
cin예제
using namespace std;
char ch;
char let;
char str[5];
// 문자 변수, 문자열 변수 상관없이 섞어서 입력 가능
// 인수(argument) 여러개 호출 가능
cin >> ch >> let >> str;
printf("%c %c %s", ch, let, str);
cin 출력
a b abc a b abc
문자열 입력 함수(띄어쓰기 입력 가능)
특징
문자열만 입력 가능("a", "abc")
띄어쓰기 입력 가능
gets
gets예제
char ch;
char let;
char str[5];
// 문자 변수 입력 불가
//gets(let);
// 인수(argument) 1개로만 호출 가능
//gets(ch, let, str);
gets(str);
printf("%s", str);
gets 출력
abc abc
fgets
fgets 예제(띄어쓰기 입력 시)
char ch;
char let;
char str[5];
// 문자 변수 입력 불가
//fgets(let, 1, stdin);
// 인수(argument) 1개로만 호출 가능
//fgets(ch, let, str, 5, stdin);
fgets(str, 5, stdin);
printf("%s", str);
시작하기에 앞서 문자열로 예를 든 것일 뿐 조건만 맞는다면 다른 자료형도 출력이 가능하다.
출력 함수 및 객체 목차
문자열 출력 함수
printf
puts
fprintf
fputs
문자 출력 함수
putchar
putc
fputchar
fputc
문자 및 문자열 출력 객체
cout(C++)
출력 함수 및 객체 요약
차이점으로 요약할 수 있을거 같다.
문자냐 문자열이냐
문자열(printf, puts, fprintf, fputs)
문자(putchar, putc, fputchar, fputc)
문자 및 문자열(cout)
자동 개행(줄바꿈)이 되냐 안되냐
자동 개행(puts)
출력할 변수가 1개냐 여러 개냐
인수 여러개 호출 가능(printf, fprintf, cout)
스트림을 지정하냐 안 하냐(예를 들면 콘솔 출력이냐, 파일 출력이냐)
지정(fprintf, fputs, fputchar, fputc, putc)
예를 4가지 들면
(문자열)을 (자동 개행) 안되게 (인수 여러개)로 콘솔 출력 할 것이다. -> printf
(문자열)을 (자동 개행) 안되게 (인수 여러개)로 (콘솔 스트림 지정)=콘솔 출력 할 것이다. -> fprintf
(문자)를 (자동 개행) 안되게 (인수 1개)로 (파일 스트림 지정)=파일 출력 할 것이다. -> putc, fputchar, fputc
(문자 및 문자열)을 (자동 개행) 안되게 (인수 여러개)로 콘솔 출력 할 것이다. -> cout
예를 들긴 했지만 printf와 fprintf를 제일 많이 사용한다.
cout도 많이 사용하나 printf에 비해 느린 편이다.
문자열 출력 함수
특징
문자열 또는 문자열 변수만 출력 가능("abc")
문자열 처리한 문자는 출력 가능("a")
printf
printf예제
char let = 'z';
char str[5] = "abc";
// 문자 출력 불가
//printf('z');
// 문자 변수 출력 불가
//printf(let);
// 문자열 처리한 문자는 출력 가능
printf("z");
printf("abc");
printf(str);
// 인수(argument) 여러개 호출 가능
printf("abc%s%s%s", str, str, str);
printf 출력
zabcabcabcabcabcabc
puts
puts예제
char let = 'z';
char str[5] = "abc";
// 문자 출력 불가
//puts('z');
// 문자 변수 출력 불가
//puts(let);
// 문자열 처리한 문자는 출력 가능
puts("z");
puts("abc");
puts(str);
// 인수(argument) 1개로만 호출 가능
//puts("abc%s", str);
puts 출력
z abc abc
fprintf
fprintf예제
char let = 'z';
char str[5] = "abc";
// 문자 출력 불가
//printf('z');
// 문자 변수 출력 불가
//printf(let);
// 문자열 처리한 문자는 출력 가능
fprintf(stdout, "z");
fprintf(stdout, "abc");
fprintf(stdout, str);
// 인수(argument) 여러개 호출 가능
fprintf(stdout, "abc%s%s%s", str, str, str);
fprintf 출력
zabcabcabcabcabcabc
fputs
fputs예제
char let = 'z';
char str[5] = "abc";
// 문자 출력 불가
//puts('z');
// 문자 변수 출력 불가
//puts(let);
// 문자열 처리한 문자는 출력 가능
fputs("z", stdout);
fputs("abc", stdout);
fputs(str, stdout);
// 인수(argument) 1개로만 호출 가능
//fputs("abc%s", str, stdout);
fputs 출력
zabcabc
문자 출력 함수
특징
문자 또는 문자 변수만 출력 가능('a')
putchar
putchar예제
char let = 'z';
char str[5] = "abc";
putchar('z');
putchar(let);
// 문자열 출력 불가
//putchar("abc");
// 문자열 변수 출력 불가
//putchar(str);
putchar 출력
zz
putc
putc예제
char let = 'z';
char str[5] = "abc";
putc('z', stdout);
putc(let, stdout);
// 문자열 출력 불가
//putc("abc", stdout);
// 문자열 변수 출력 불가
//putc(str, stdout);
putc 출력
zz
fputchar
fputchar예제
char let = 'z';
char str[5] = "abc";
fputchar('z');
fputchar(let);
// 문자열 출력 불가
//fputchar("abc");
// 문자열 변수 출력 불가
//fputchar(str);
fputchar 출력
zz
fputc
fputc예제
char let = 'z';
char str[5] = "abc";
fputc('z', stdout);
fputc(let, stdout);
// 문자열 출력 불가
//fputc("abc", stdout);
// 문자열 변수 출력 불가
//fputc(str, stdout);
fputc 출력
zz
문자 및 문자열 출력 객체(C++)
특징
문자, 문자열, 문자 변수, 문자열 변수 상관없이 섞어서 쓸 수 있다.('a', "a", "abc")
출력 함수에 비해 느리다.
cout
cout예제
using namespace std;
char let = 'z';
char str[5] = "abc";
cout << 'z' << let << "abc" << str;