기본입출력(Console)
- 콘솔 기본입력장치 : 키보드
- 콘솔 기본출력장치 : 모니터
- 콘솔 기본에러장치 : 모니터
- 콘솔에서 데이터를 입력받거나 출력하는 방법
출력 - Console 클래스
- Console.Write(); 화면상에 그대로 출력
- Console.WriteLine(); 화면상에 출력후 엔터기입
주소록 출력
- Console.WriteLine("홍길동");
- Console.WriteLine("서울시");
- Console.WriteLine("아무개");
- Console.WriteLine("인천시");
Output
- 형식 문자열(Format String)
string name = "홍길동";
Console.WriteLine(name+"님 안녕하세요");
Console.WriteLine("{0}님 안녕하세요~", name);
() -> 첫번째 인자와 두번째 인자로 나뉘어 있다.
"" -> Place Holder
name 값이 {0} 대신 자리한다. 여러인자가
올수 있기 때문에 순서를 정해놓았다.
{index} : Place Holder
index : zero-based index (C#),
서수를 0부터
시작
화면에 찍기전 name 데이터를 가져와서 찍는다.
문장이 길어질수록 형식 문자열에 가독성이 매우 높기 때문에 형식 문자열을 사용한다.
Console.WriteLine("이름은" + name + "몸무게" + weight + "키는" + height + "이며" + "나이는" + age + "입니다.");
Console.WriteLine("이름은{0}이고, 나이는 {1}이며 몸무게는 {2}
이며 키는 {3} 입니다.",name, age, weight, height);
Place Holder 안에 순서 {}0,1,2,3 이 아닌 {} 0,2,3,1 이여도 에러가 나지 않는다.
Console.WriteLine("+{0,10}+","ABCDE");//우측 부터 10칸 자리사용
Console.WriteLine("+{0,-10}+","ABCDE");
// 좌측 부터 10칸 자리사용
형식 문자
- 자료형을 바꾸는 것이 아니다.
- 보이는 모습만 바꾸는 것
화면상에 보여지는것만 실수형으로 보이나 실은 정수이다.
Console.WriteLine("n1
= {0}", n1); 3
Console.WriteLine("n1
= {0:F}", n1); 3.00
Console.WriteLine("n1
= {0:F1}", n1); 3.0
소수점 자릿수를 조절해서 사용할수 있다.
Console.WriteLine("n1
= {0,10:F1}", n1);
Console.WriteLine("{0:N}원", n1);
// X - 16진수
// E - 지수 3.04Ex10
// N - 천단위 표시
Input(콘솔 입력 -> 키보드로 타이핑한 데이터를 프로그램으로
받아들이기..
- Console 클래스가 담당 콘솔 클래스 안에 Read()메소드, ReadLine()메소드를 사용한다.
ReadLine()역활
- 사용자가 입력한 1개의 문장(엔터칠때까지..)을 입력 받는다.
- 어떠한 값을 입력 받아도 string 형식으로 돌려준다.
Console.ReadLine(); 입력을 받을떄까지 멈춰 있는 상태
1. 입력받은 데이터를 읽어 들인다. 엔터를 칠때까지 기다린다.
2. 입력받은 데이터를 그대로 보관한다. string input = Console.ReadLine();
Console.Write("숫자 입력 : ");
string input = Console.ReadLine();
int num = int.Parse(input); //문자형에서 숫자형으로 바뀜
//숫자 2개입력 받는것은
// ReadLine() x 2번
Console.Write("첫번쨰 숫자 입력 : ");
string input1 = Console.ReadLine();
int num1 = int.Parse(input1);
Console.Write("두번째 숫자 입력 : ");
string input2 = Console.ReadLine();
int num2 = int.Parse(input2);
Console.Write("{0} + {1} = {2}", num1, num2, num1 +
num2);
//데이터 입력 -> 출력
Console.Write("입력 : ");
//Console.Read()
메소드는 입력받은 형태를 숫자로 반환한다.
//Console.WriteLine(Console.ReadLine());
int
input = Console.Read();
Console.WriteLine(input);
input = Console.Read();//치환
Console.WriteLine(input);
input = Console.Read();//치환
Console.WriteLine(input);
input = Console.Read();//치환
Console.WriteLine(input);
input = Console.Read();//치환
Console.WriteLine(input);
input = Console.Read();//치환
Console.WriteLine(input);
//1. 블럭에서 입력 대기상태
//2. 입력을 하게되면 어딘가에 있는 메모리에 임시공간에 저장 되있으며 이것을 입력 버퍼라
한다.
//3. 입력력버퍼데이터를 읽는다.
//4.
Read()메소드 특성 읽고 지운다.
//5. 또입력 받길 기다리는게 아니라 남아 있는데이터가 입력버퍼가 남은 데이터를 읽는다.
//6. 마저남아 있던 입력 버퍼안에 있던 데이터를 반환한것이다.
//7. 한번더 질문을 하게되면 엔터가 되는 순간 다시 입력 버퍼에 작성된다.
//abc 입력후 엔터를 입력하게되면 abc엔터 까지의
데이터의 값을 가진다.
//엔터 Carrage Return 1번실행, New Line 1번실행 abc\r\n
//Carrage
Return : 커서를 맨앞으로 ..
//New
Line : 커서를 다음줄로..
//ReadLine()메소드도 같은 형식이다.
//버퍼안에서 엔터를 만날때까지 읽어 들이라고 하였기 때문에 한라인을 다읽어들인것이다.