728x90
8.7 입력 스트림과 숫자
스트림 : 사용자가 입력한 내용이 우리가 만든 프로그램으로 흘러들어가는 과정
#include <stdio.h>
#pragma warning (disable:4996)
main()
{
char str[255];
int i, i2;
double d;
scanf("%s %d %lf", str, &i, &d);
printf("%s %d %f\n", str, i, d);
scanf("%s %d %d", str, &i, &i2);
printf("%s %d %d\n", str, i, i2);
char c;
while ((c = getchar()) != '\n')
putchar(c);
printf("\n");
}
Output :
(hello 123 3.14 입력)
hello 123 3.140000
(abc 456 1.2345 입력)
abc 456 1
.2345
- 두번째 scanf문에서는 3번째 입력으로 정수를 받아야 하는데 1.2345의 실수가 입력됨
- 1 다음의 ' . '은 정수가 아니므로 1에서 입력이 끝났다고 인식
- 버퍼에 남아있던 .2345가 while문의 putchar를 통해 출력
- 위처럼 어떤 자료형을 입력받는지에 다라 같은 입력도 다르게 출력될 수 있음
- 기본적으로 콘솔로 입력을 받을 때에는 콘솔창에 입력한 내용을 문자로 한 글자씩 받음
- 숫자 입력시 일단은 문자열로 받고 그 데이터를 scanf 내부에서 placeholder를 통해 숫자로 변환할 수 있는 문자임을 인식해서 숫자형 변수에 저장
#include <stdio.h>
#pragma warning (disable:4996)
main()
{
char c;
while ((c = getchar()) != '\n')
putchar(c);
printf("\n");
}
Output :
(hello 123 3.14 입력)
hello 123 3.14
- getchar는 입력받은 그대로 (띄어쓰기 포함) 출력
강의 출처 : https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 8.9 텍스트 파일 읽기 (0) | 2022.03.23 |
---|---|
[홍정모의 따라하며 배우는 C언어] 8.8 메뉴 만들기 예제 (0) | 2022.03.19 |
[홍정모의 따라하며 배우는 C언어] 8.6 입력 확인하기 (0) | 2022.03.06 |
[홍정모의 따라하며 배우는 C언어] 8.4 사용자 인터페이스는 친절하게 ~ 8.5 숫자와 문자를 섞어서 입력받기 (0) | 2022.03.03 |
[홍정모의 따라하며 배우는 C언어] 8.1 입출력 버퍼 ~ 8.3 입출력 방향 재지정 (0) | 2022.02.08 |