본문 바로가기

Study_C, C++/홍정모의 따라하며 배우는 C언어

[홍정모의 따라하며 배우는 C언어] 8.7 입력 스트림과 숫자

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

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., - 강의 소개 | 인프런...

www.inflearn.com