안녕하세요, 어서 오세요
이번 강의에서는 키보드로 읽기 입력에 관해 얘기할 거예요
네 여러분이 일찍 배우셨으면 하는 기본 개념입니다
많은 프로그램에서 필요한 유용한 기술이거든요
그래서 초기에 이걸 제공했죠
일부 콘셉트는 완전히 명확하지 않아요
하지만 이런 개념은 다른 섹션에서 배우도록 하죠 아주
초기에 배우는 게 중요해요 printf 함수와
아주 유사하죠
산출에 대해 얘기했죠
printf를 이용해 포맷아웃풋 처리하는 방법도 알죠
이제 입력에 관해 배워야 합니다 사용자에게서
입력을 받는 거죠
사용자에게 프로그램에 데이터를 입력하라고 요청하는 건 아주 유용하죠
이런 식으로 데이터를 입력하는 명령 선형 이론도
하나의 방법이죠
또 다른 방법은 사용자에게 물어보는 거죠 키보드에 뭔가를
입력할 수 있도록요
네 키보드에서 입력을 얻지만 화면에 표시되죠 단말기와
콘솔을 통해 입력값을 입력할 수 있습니다
그렇게 input을 입력하죠
c 라이브러리에 서세버럴 입력 기능이 있어요
scanf를 사용할 거예요.
가장 일반적인 기능이죠
아주 유용하죠
여러분이 들어갈 수 있는 다양한 기호를 제공하죠
텍스트를 입력하면 다른 형식으로 변환될 거예요
스캔은 시스탠다드 입력 스트림을 읽어요
Scanf는 입력 스트림이 파일이라면 파일로부터 읽기
기능도 있어요
네 하지만 지금은 그런 걱정 안 해도
돼요 키보드에서 입력을 읽는 데 사용하겠습니다
스트딘 바이드폴이 키보드예요
스트딘은 개울이에요
광선과 분산 광선이 3개 있어요
오류 스트림, 표준형, 표준형 출력이죠
기본값은 키보드로 하죠
계속 그렇게 둘 거예요
네 Scanf를 사용하면 표준에서 읽어올 거예요 여러분이 입력한
것과 데이터를 어떻게 저장할지에 따라서요
입력한 걸 변환할 거라고 해야겠네요 입력하는 건
텍스트가 될 테니까요
텍스트를 여러분이 제공한 형식으로 변환할 거예요
형식 지정자를 사용합니다 printf 함수 같은 거죠
포맷은characters 시퀀스예요 스트링이라고 하죠
아직 자세히는 연구하지 않았어요
데이터 타입에 대해 얘기할 때 다시 말씀드리죠
네 그리고 다른 데이터 타입도 지정할 수 있어요 예를 들어
정수나 숫자 같은 거요 기본적으로 그렇죠
숫자를 읽을 수 있군요
문자열을 읽을 수 있어요
Thedecimals를 포함하는 숫자를 읽을 수 있어요 단일
문자 같은 멋진 것들이죠
네 표준이 키보드에서 입력하면 그게 기본값이죠 어떻게 되느냐면
키보드를 통해 텍스트를 입력하면 텍스트를 가져다가
C# 프로그램에 넣고 텍스트를 변환할 거예요
문자란 글자를 뜻해요 숫자나 문장 부호 같은 거요
ina 번호를 입력해도 여전히 텍스트예요 키보드에서
왔으니까요
네 그래서 정수 2014로 입력하면 그건 숫자죠 본질적으로 무슨 일이 벌어지느냐면 문자
2-0-1과 4를 입력하고 있어요
이제 C 프로그램으로 입력값을
보낼 거예요
해당 dataas를 숫자로 저장하고 싶다면 해당 데이터를
변환해야 해요
그래서 형식 지정자를 지정해야 합니다 어떻게 변환할지를요 printf에서
하는 것처럼요
printf에서 정수를 프린트하기 위해percentd를 사용하는 걸 기억하세요
텍스트를 정수로 변환합니다 scanf에서도 %d를 이용해 정수로
변환합니다 문자열을 숫자로 변환하고 싶다면요
초기에 기본을 다지기 위해 그렇게 할 거예요
네 숫자만 사용하도록 하겠습니다 지금까지는
숫자를 알고 있고 문자열에 대해서는 아직 배우지 않았으니까요
그래서 입력할 때 주로 숫자를 사용할 거예요
좋아요,
printf와 아주 유사하죠
하지만 그 대신 약간 다른 주장이 필요해요
여전히 인수의 목록으로 연결된 컨트롤 스트링 폴로우더를 사용하죠
큰따옴표에 뭔가 있을 거예요
큰따옴표는 보통 하나를 포함하는데 그건 형식 지정자가
될 거예요
데이터를 변환하는 방법도요
그래서 컨트롤 문자열은 문자 입력 스트림의 목적 데이터
타입을 나타내요
형식 지정자입니다 %d, %c, %s 흐름의
%f 등등이요
네 printf 함수는 그 인수 안에 있는 변수 이름, 상수와 표현을
사용하죠 이런 걸 배우거든요
큰따옴표에 뭔가 있어요
그리고 이중문자 안에는 형식 스펙타이어를 사용하죠
쉼표 다음에 변수를 프린트하거나 식을 프린트할
수도 있어요
표정도 디테일에 관해 얘기할 거예요 값을
반환하는 거죠
가장 일반적인 표현 형식은 산수 표현이에요
Scanf 함수는 달라요 왜냐하면 변수를 실제로
표시하는 대신에 포인트로 지정된 변수를 사용하니까요
하지만 다행히도 포인터니스는 C에서 중요한 개념이죠
네 scanf 함수를 이해하고 사용하기 위해서는 포인터에 대해 아무것도
알 필요가 없습니다.
그건 걱정하지 마세요
좋아요, 그럼 scanf 함수에 대한 세 가지 규칙만
기억하면 사용할 수 있어요
성공적으로 읽는 ofitems의 수를 반환할 거예요
변수가 하나, 둘, 셋이라고 읽히면 그걸 반환하죠
네 scanf를 사용해 우리가 논의할 기본 변수 유형
중 하나에 대한 값을 읽는다면 int 같은 거요 부동 소수점 수도 더블 같은 거요 그럼
변수 이름만 있으면 됩니다 논쟁을 시작하기 전에 &를 발음해야
합니다
왜 그런지 알 필요도 없지만 그냥 하세요
기본 데이터 타입에 대해서요
앰퍼샌드는 주소예요
scanf는 포인터를 받기 때문에 참조를 취소하고 주소를
전달해야 해요.
스캐프에서 기억해야 할 세 번째 사항이에요
네 scanf를 사용하면 문자열을 문자열로 읽을 수
있어요 ampersand를 쓸 필요가 없죠
scanf는 두 개의 견해를 가지고 있습니다. 예를
들어 볼게요.
첫 번째 인수는 입력한 데이터를 변환하는 방법이죠
그 datain int를 저장하면 % 사용 형식
지정자 %d를 사용하죠
끈으로 저장하고 싶다면 퍼센트 s를
사용하세요
그리고 두 번째 인수는 여러 인수가 될 수 있어요 형식 지정자를
몇 개나 쓰느냐에 따라서요 왜냐하면 printf는 실제 변수가
되는 것처럼요 변수 이름이죠
변수가 all buta string이라면 ampersand를 쓰면 돼요
그렇지 않으면 &를 사용하지 않죠
Scanf 함수는 공백을 이용해 입력값을 어떻게
분리할지 결정하죠
화이트스페이스는 뉴 라인, 탭, 스페이스를 포함하죠
네 네 왜냐하면 왜냐하면 printf는 많은
변수를 보여줄 수 있거든요 작은따옴표 안에 형식 지정자가
얼마나 많은지에 따라서요 스캔도 마찬가지입니다
scanf에 여러 가지가 있다면 큰따옴표로 여러
입력을 읽을 거예요.
입력값은 새 선으로 나누고요
Scanf가 뭔지 이해하려고 하면 printf의
반대죠
네 Printf는 정수와 부동 소수점 수 문자열, 이런 모든 다양한 데이터 유형을
변환합니다 텍스트로 변환해 출력된 걸 보실 수
있도록 하죠 ? 네, 출력된 걸 볼 수 있도록요
영화에도 나올 거예요
스캔프는 그 반대예요
입력 텍스트를 입력 텍스트로 받아 다양한 데이터 유형으로 변환합니다 int 같은
거요 부동 소수점, 더블 같은 거요
예제를 보죠
이건 간단한 프로그램의 한 예인데요
주요 루틴은 알아요
포함 지시가 뭔지 알아요
자동차와 정수는 아직 못 배웠어요
네 하지만 기본적으로 주요 기능의 맨 위에서 두 가지
변수를 만듭니다 데이터를 저장해야 하고 변수에 대해 보다 상세히
얘기할 것이기 때문이죠
하지만 printf 함수와 마찬가지로 반대로 하는 거죠
화면에 출력을 표시하고 있죠 값을 입력하라고요
Scanf 안에 입력할 형식 식별기가
있어요
네 여기서 읽을 데이터를 지정해야
해요 퍼센트 s 퍼센트 d
그 말은 astring에서 읽고 int에서 읽는다는 거죠
스트링doesn에는 ampersand와 scanf가 첫
번째 쉼표 뒤에 없죠
두 번째 쉼표 다음에 아넴퍼샌드가 나와요 이건 정수거든요
숫자로 읽히고 있어요
그리고 printfis가 출력을 보여주죠
이렇게 말하죠 이 문자열을 입력했어요 이 정수에서요 printf가
뭘 하는지 아는 것처럼요 그럼 주요 함수는 0을 반환하죠
좋아요, 코드 블록에서 이 익스캠플을 살펴보죠
몇 가지 개념을 반복해서 살펴보죠
네 프로그램이 scanf를 사용해서 키보드에서 입력을 얻을 때는 당신이
텍스트를 입력하길 기다려요
데이터를 입력할 때까지 프로그램이 멈출 거예요
어떤 텍스트를 입력하면요
네 공백을 입력하면 여러 가지를 입력하면 엔터
버튼을 누르는 순간 프로그램은 입력을 진행하고
읽어요
엔터 키를 눌러야 해요
다시 말하지만, scanf는 당신이 제공한 것과 같은 형식으로 입력하기를 원해요.
네 % s와 % e라고 하면 문자열 다음에 띄어쓰기를 해야
한다는 뜻이에요 아무 공백이나 띄어쓰기하고 정수를 입력하고
숫자 하나, 단어를 입력해야 하죠
스트링은 단어로 정수는 숫자예요
이 예제선을 한 줄씩 코드블록으로 살펴보죠
자, 여기 주 기능이 있어요
데이터를 프로그램에 입력하는 게 중요해요
네 그래서 printf와 마찬가지로 아주 유사합니다 이 모든 코드를
이해할 필요는 없어요
통과되고 있는 패러미터도 제거합니다
간단한 주요 함수죠
암호를 다 이해할 필요는 없어요
이 시점에서 변수가 뭔지 이해할 필요도 없어요
하지만 변수는 데이터를 저장하죠
네 네 예제에선 100개의 문자열 배열과 세미콜론을 생성하고 있어요 그런 다음 정수도 생성하겠습니다
printf에서와 마찬가지로요
정수는 있지만 문자열을 사용하죠
다양한 인풋을 보여주고 싶을 뿐이에요
네 그럼 대개는 언제라도 키보드에서 입력을 받기 위해 scanf 함수를 호출하기
전에 항상 사용자에게 뭔가를 알려주죠
뭘 들여보낼지 알려주고 싶죠?
printf는 데이터를 화면에 디스플레이하죠
enter a value를 입력하고요.
몇 개에 실제로 진입하고 세미콜론으로 끝낼
거예요
테우저에게 입력하라고 해야 해요
여기서 scanf 함수를 사용할 수 있어요.
scanf라고 하죠 그리고 괄호 안에 첫 번째 인수
큰 따옴표 안에 읽을 데이터가 있어요
이 예제에선 input%d만 읽겠다고
하죠 int로요
그런 다음 해당 데이터를 변수로 억제합니다
그걸 봐야 하니까요
제가 될 거예요
네 이제 &를 그 전에 지정해야 합니다 이 포인터 트릭을
기억하세요
알 필요 없어요 주소만 알면 돼요
네 그래서 17번째 줄의 scanf는 사용자가 enter 버튼을 누를 때까지
키보드로부터 데이터를 읽어요
그 데이터는 I라는 변수에 tobe 저장될 거예요
이제 입력한 것을 입력해 볼게요.
네 여기 보시면 줄 피드를 추가해서 가독성을 갖도록 하겠습니다
그래서 탈출 시퀀스를 이용할 것입니다
백슬래시 n 그리고 여기에
%d를 입력하면 변수의 값을 표시할 거예요
그 후에 관을 삽입할 거예요
우리가 표시하고자 하는 변수 값은 i예요
엔딧을 세미콜론으로 할 거예요
그게 우리 프로그램이에요
네 네 다시 input 값을 읽어달라는 출력 프린트 17번째 줄 우리가 읽는 데이터가
정수라는 걸 명시하고 i에 저장합니다 ampersand를
이용해서요 그리고 방금 입력한 걸 출력합니다
그럼 이걸 빌드하고 실행해보죠
프로그램이 시작됐다가 멈춥니다 값을 입력하길 바라기
때문이죠
값을 입력하라네요
이 시점에선 문자열로 변환할 수 있는 숫자를 입력해야 합니다 그렇게
되고 있거든요
여기 56이라고 입력하죠
그런 다음 엔터를 치죠
바이러스 스캐너 때문에요
56을 치고 엔터를 치죠
그걸 프린트해서 56을 입력했어요
정보와 숫자를 입력하면 변수에 저장할 수 있어요
이제 as printf처럼요 여러 가지를 입력하게 할
수 있고 여러 변수에 저장할 수 있어요
네 그래서 여기 정수에서 끝나죠 또 다른 % 형식
지정자: % s라고 하겠습니다 그냥 찾기나 단어인 문자열을 입력하라는
의미죠
단어라면 ampersand를 제공할 필요가 없다는 걸 기억하세요
그래서 saystir로 가서 데이터를 변수
저장소에 저장하죠
그리고 변수에 대해서 다시 한번 배워보도록 할게요
그런 다음 프린트할 거예요
다른 변수를 추가했어요 printf를 알죠?
콜론을 먼저 넣고요 프린트할 형식도 지정해야
합니다 %s죠
잘 아셨으면 좋겠네요
네 이제 빈칸으로 분리된 입력값 2개를 읽고 변수 I와
젓기에 저장한 후 디스플레이할게요
이제 빌드하고 실행하죠
네 이제 숫자 22를 입력할게요 스페이스를 누르고 제 이름을 입력한 다음 반환을
누릅니다
네 그렇게 하면 프로그램이 일시 정지되고 제가 입력한
숫자와 문자열을 표시할 거예요 그리고 문자열도요
22와 Jason을 보여주네요.
사용자로부터의 인풋풋을 얻는 방법입니다 네다섯 줄의
간단한 코드죠
또 하나 보여드리고 싶은 건 더블로 읽는 방법이에요
네 그래서 나중에 강의에서 부동 소수점 수를 읽는 방법을 보여드릴
겁니다 일반적으로 지정된 형식을 사용하죠 %f요
하지만 두 배로 읽으면 사실 좀 달라요 %
lf를 쓰죠 그러니 이걸 마음속에 간직하세요
네 변수 이름 더블 x를 만들고 scanf를 사용해 그걸 읽으면 % LF를
이용해 읽어야 해요
그게 여러분이 사용하고자 하는 formatpecifier예요
다른 것과 마찬가지로 ampersand를
주소로 쓰고 x를 쓰면 돼요
더블을 어떻게 읽는지 보여드릴게요
흐름을 읽을 때와는 다르죠
그러니 잘 기억해 두세요
이걸 실행하면 아주 간단하다는 걸 알게 되실 거예요
인풋레딩도 읽을 수 있어요
그걸 실행해 보세요
전 별로 한 게 없어요
이 더블은 77이에요 8을 읽고 저장합니다 꽤
간단하죠
scanf는 아주 유용해요.
네 다른 문제들도요 스캐프랑 관련해서요 강의를 들으면서 알게
되시겠지만 scanf는 때때로 잘 작동하지 않습니다.
f-s는 다른 용도로 쓸 수 있어요
스캔의 가장 큰 문제는 공간을 볼 때까지만 읽을
수 있다는 거예요
usescanf를 하려면 함수에서
여러 번 호출해야 해요
네 다른 조합에서는 잘 작동하지 않을 수도
있어요 왜냐하면 키보드의 반환 버튼을 누르면 작동하거든요
return 버튼을 읽지 않을 거예요. 왜냐하면 단어에서
읽기 때문이죠.
그래서 라인을 못 타죠
네 그래서 다음에 scanf를 사용하면 그 라인을 즉시
건너뛰고 라인 피드에서 읽게 되죠
이게 문제네요. 이게 문제예요. 하나의 프로그램에서 여러 개의 scanfs를
쓴다면, 하나씩 차례로 쓰면, 다른 scanfs들은 실행되지
않는 것을 볼 수 있습니다. 왜냐하면 라인 피드에서 읽고 있기 때문이죠.
네 이동하기 아주 쉽죠 맞아요 스캔을 한 다음에 Git Char를
호출하고 다른 스캐너를 호출해요 그 개념은 나중에 더 자세히
얘기할게요
Scanf를 사용해 더블을 읽을 때 % LF를
사용하도록 하세요
네 다시 말씀드리지만 사용자로부터 입력을 받으려면 이 방법이 유용할
수 있어요 유용한 작업을 하고 다양한 개념을 배우기
위해서는 사용자로부터 입력을 받을 수 있습니다
도움이 됐으면 좋겠네요
네 네 다시 말씀드리지만 여러분이 완전히
이해하지 못하는 이런 개념은 신경 쓰지 마세요 변수나 문자열 같은 거요
이 모든 걸 상세히 논의할 겁니다 감사합니다