C언어 기초부터..입력출력

in kr-dev •  7 years ago  (edited)

오랜만에 올리는 글.
프로젝트 하나를 겨우 끝내고..ㅠㅠ
혼자 공부하면서 기록을 남겨둘 곳이 필요했는데
이왕 블로그를 시작하기로 한 곳이 스팀잇이니 이곳에 남기기로 함.

<주의>
정확하지 않은 정보가 있을수도 있습니다.
제가 공부한 것을 남겨놓기 위한 목적이 가장 큽니다.
수정이 필요하거나 틀린부분이 있다면 알려주세요~!
공부과정에서 설명이 부정확한 부분이 있다면 차후 수정 하겠습니다.

가장 기본적인 입력출력 함수들을 연습해봤는데 이게 자연스럽게 익혀지지 않으면
기초 공부과정에서 애로사항이 많다.
오래된 예제나 최근 예제들을 비교하면서테스트 해보는것을 추천한다.


#include <iostream>
//전역 변수
int age;
float height;

void main() 
{
    //입력 함수(scanf) 활용 - 입력값을 하나씩 받기
    printf_s("★입출력함수의 기본적인 형식에 대해 알아봅니다.\n\n");
    printf_s("콘솔창에서의 입출력 함수는 기본적으로 printf_s (출력) scanf_s(입력)이 있습니다.\n");
    printf_s("scanf, printf의 함수원형은 버퍼오버플로우의 위험이 있기때문에 사용하지 않는것이 좋다고합니다.\n");
    printf_s ("\n>>변수를 하나씩 따로 입력해봅시다. \n당신의 나이는?\n");
    scanf_s("%d", &age);
    printf("당신의 키는 몇 입니까?\n");
    scanf_s("%f", &height);
    printf_s("반갑습니다 당신의 나이는 (%d) 이고 키는 (%.1f) 이군요.\n", age, height);

    //화면 지우는 함수
    //system("cls");   

    age = 0;
    height = 0;

    //입력함수 활용 - 입력값을 동시에 여러개 받기
    printf_s("\n\n>>변수를 동시에 2개 입력해봅시다. \n당신의 나이와 키를 동시에 입력해보세요.\n(입력은 공백(space),enter,개행코드로 구분될수있습니다)\n");
    scanf_s("%d%f", &age, &height);
    printf_s("반갑습니다 당신의 나이는 (%d) 이고 키는 (%.1f) 이군요 \n", age, height);

    //화면 지우는 함수
    //system("cls");

    //기타 입출력 함수
    puts("\n이번에는 printf() scanf() 이외에 다른 입출력함수를 알아봅시다.");
    puts("안녕하세요 먼저 출력함수입니다. 이문자는 puts함수를 통해 출력한 함수입니다.");               
      //puts() 문자열만 출력할수있는 함수이다. 개행코드 \n을 포함한다. 자동개행이된다. 
    puts("문자열만 출력할수 있는 함수입니다.");
    puts("이렇게 자동으로 개행(줄넘기)되는 함수입니다.개행코드가 포함되어 있다고 생각하면 됩니다.");
    puts("puts()함수는 문자열만 출력하고싶을때 사용하면 됩니다.");

    /*
    scanf는 공백 이후는 입력이 되지 않음.
    이에 비해 gets_s() 입력을 받으면 Enter를 칠 때까지 입력된 모든 문자를 저장한다.
    */

    char animal[256];

    printf_s("\n\n또다른 입력함수를 알아봅니다. \nscanf함수는 공백이후는 입력되지 않습니다. \n토끼와거북이를 입력해보세요. \n");
    scanf_s("%s", animal, sizeof(animal));
    printf_s("scanf로 입력받은 값입니다. ->(%s)  \n띄어쓰기된 문자열은 입력이 되지 않습니다.", animal);
    printf_s("\n\n하지만 gets 함수는 입력받은 모든 문자열을 저장하고자 하는 변수에 저장할수있습니다.\n");
    printf_s("따라서 버퍼 오버플로우의 위험성이 높습니다. 현재는 표준라이브러리에서 삭제되었습니다. \ngets_s 함수를 사용합니다. \n");
    puts("\n토끼와 거북이를 입력해보세요 토끼와 다음에 공백이있는부분을 기억하세요\n");
    rewind(stdin);  //rewind->표준입력장치(stdin)의 버퍼를 비워줘야 입력함수가 씹히지 않는다.
    char animal2[256];
    gets_s(animal2, sizeof(animal2));
    printf_s("\nfgets_s함수로 입력받은 결과값입니다. ->(%s) \n띄어쓰기까지 잘 입력이 되었네요.\n", animal2);

    system("pause");
}

입출력 함수가 생각보다 종류가 많다.
color scripter 같은걸로 소스코드를 올릴수가 없으니, 고민고민하다가
코드 시작과 끝을 ``` 로 감싸면 컬러박스가 생기게 하니 보기에
나쁘지 않은 것 같다.


테스트 해보고 싶으신분들께...
visual stuio 2017 사용하고 있구요.
비쥬얼 스튜디오 -> ctrl + shift + n 누르시면 새 프로젝트 생성하는 창이 뜹니다.
그곳에서 프로젝트명 입력하신 후, 새 프로젝트를 생성 하시고, 위 코드를 붙여 넣으시면
테스트가 가능 하실겁니다.


저도 과정을 겪는 중입니다.
아직 경험도 많이 없고, 갓 시작한 코딩새싹이에요.
다들 화이팅팅팅. ^^

관련정보
https://msdn.microsoft.com/ko-kr/library/239ffwa0.aspx

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Tollll!

공부하는 내용을 이 곳에 정리해두는 것도 괜찮은 방법이네요.
많은 발전 있으시기 바랍니다.^^

앗 좋은 조언 감사합니다. 열심히 할께요..ㅎㅎ