본문 바로가기

   
Programming/C#

IO Output(형식문자열), Input

반응형

기본입출력(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); //문자형에서 숫자형으로 바뀜

Console.Write("입력하신 {0}의 제곱근은 {1}입니다.", input, num * num);

 

//숫자 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()메소드도 같은 형식이다.

            //버퍼안에서 엔터를 만날때까지 읽어 들이라고 하였기 때문에 한라인을 다읽어들인것이다.

 



























 
반응형