C/명품 C언어 프로젝트(안기수 저)

명품 C언어 프로젝트 3.4장 연습문제

꾸준함. 2017. 6. 18. 12:00

[1번 문제]

/*

화면에 출력된 문장에 대해 색상번호를 입력하면 문장의 색상이 변화하는 함수 color_text를 작성하시오

*/

#include <stdio.h>

#include <Windows.h>

 

void text_color(char attr)

{

        char dos_command[9];

        sprintf(dos_command, "color 0%c", attr); //문장만 바꾼다, 0은 검은색

        system("cls");

        system(dos_command);

}

 

void intro_color_set(void)

{

        printf("텍스트 색상변경\n\n");

        printf("0:검정색,       1.파랑색,       2.초록색\n");

        printf("3.옥색, 4.빨강색,       5:자주색\n");

        printf("6.노란색,       7.흰색  8.회색\n");

        printf("9.연한 파랑색,   A:연한 초록색\n");

        printf("B:연한 옥색,    C:연한 빨강색\n");

        printf("D:연한 자주색,   E:연한 노란색\n");

        printf("F:밝은 흰색\n\n");;

        printf("에를 들어 c를 입력하면 ");

        printf("연한 빨강색의 문자를 출력합니다\n\n");

}

 

int main(void)

{

        char str[30];

        char attr;

        printf("문장 입력:");

        gets(str);

        /*

        system("cls");

        intro_color_set();

        Sleep(5000); //다 읽기를 기다리고

        system("cls");

        */

        printf("색상번호 입력:");

        scanf("%c", &attr);

        printf("%c\n", attr);

        text_color(attr);

        puts(str);

        return 0;

}


[2번 문제]

/*

화면에 출력된 문장에 대해 색상번호와 바탕색 문자를 입력하면 문장과 바탕색이 동시에 변화하는 함수 color_text를 작성하시오

*/

#include <stdio.h>

#include <Windows.h>

 

void color_text(char attr[])

{

        char dos_command[9];

        sprintf(dos_command, "color %s", attr);

        system("cls");

        system(dos_command);

}

 

int main(void)

{

        char str[30];

        char attr[3];

        printf("문장 입력:");

        scanf("%s", str);

        getchar(); //\n버퍼

        system("cls");

        printf("%s\n", str);

        printf("바탕색과 문자색 입력:");

        gets(attr);

        color_text(attr);

        printf("%s\n", str);

        return 0;

}

 


[3번 문제]

/*

Turbo C 컴파일러는 문자의 색상과 속성을 변화하는 라이브러리 함수 textcolor, textattr을 지원합니다

이 함수들은 ANSI C 표준 함수가 아니므로 Visual C++ 컴파일러에서는 사용할 수 없습니다

Visual C++ 컴파일러 환경에서 특정 단어의 색상만 변경시키는 방법에 대해 논의해보고,

이 책의 범위에 해당하지는 않지만 API 함수 SetConsoleTextAttribue를 참고하기 바랍니다

*/

#include <stdio.h>

#include <Windows.h>

 

void textColor(int background, int font) //배경화면, 글씨

{

        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), background * 16 + font);

}

 

int main(void)

{

        int background, font;

        char str[30];

        printf("문장 입력:");

        scanf("%s", str);

        getchar(); //버퍼를 비운다

        printf("색상번호 입력:");

        scanf("%d%d", &background, &font);

        textColor(background, font);

        system("cls");

        printf("%s", str);

        return 0;

}




개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~


[참고] 명품 C언어 프로젝트 안기수 저



반응형