Ir ao conteúdo

C++ preciso de bibliotecas C++


Ir à solução Resolvido por Flávio Pedroza,

Posts recomendados

Postado

Pessoal, meu problema é o seguinte: minha atividade da faculdade é criar um programa em que o usuário possa deslocar o cursor da tela para onde ele quiser, utilizando coordenadas, e também o usuário pode mudar a cor do texto e o fundo do texto. Esse programa precisa ser escrito em C++. eu sei que da pra usar a biblioteca "windows.h" para isso, mas o meu professor disse que não pode usar nenhuma biblioteca do C, tem que ser do C++, ou seja, não pode usar nenhuma biblioteca com ".h" e também não poderei usar o comando "system(""color x)", usando o cmd do Windows. eu queria saber se tem uma biblioteca própria do C++ para isso, ou outro método que vocês me aconselharem. meu sistema é o Windows 10, e estou usando o VISUAL STUDIO 2017.

  • Obrigado 1
Postado

@the_petriuh     você pode usar a biblioteca conio2.h ?     então instale ela e configure o codeblocks lá em seting/compiler/linker setings/other links setings e coloque ali esses comandos :

-lgdi32
-lconio

e depois no programa use o textcolor seguido dos valores de zero até 15  para colorir as letras  ,  e o gotoxy seguido de um valor de zero até 80 para mover o cursor pelas colunas e outro valor de zero até 25 para mover o cursor pelas linhas ,

  • Solução
Postado
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/
#include <iostream>
using namespace std;

/*Name          BG  FG
Black           30  40
Red             31  41
Green           32  42
Yellow          33  43
Blue            34  44
Magenta         35  45
Cyan            36  46
White           37  47
Bright Black    90  100
Bright Red      91  101
Bright Green    92  102
Bright Yellow   93  103
Bright Blue     94  104
Bright Magenta  95  105
Bright Cyan     96  106
Bright White    97  107*/
int main()
{
	//Texto vermelho (31) Fundo branco (107)
	cout << "\033[31m\033[107m";
	cout << "Hello Word" << endl;
	//Move o curso (linha 20, coluna 40)
	cout << "\033[20; 40H";
	//Texto branco (97) Fundo magenta (105)
	cout << "\033[97m\033[105m";
	cout << "Hello Word" << endl;
	//Volta ao normal
	cout << "\033[37m\033[40m";
	cin.get();
	return 0;
}

/033 equivale a "Esc".

Tabela completa dos códigos "Esc"

http://ascii-table.com/ansi-escape-sequences.php

  • Curtir 1
  • Obrigado 1
Postado

@the_petriuh @the_petriuh     você pode usar a biblioteca conio2.h ?     então instale ela e configure o codeblocks lá em seting/compiler/linker setings/other links setings e coloque ali esses comandos :

-lgdi32
-lconio

e depois no programa use o textcolor seguido dos valores de zero até 15  para colorir as letras  ,  e o gotoxy seguido de um valor de zero até 80 para mover o cursor pelas colunas e outro valor de zero até 25 para mover o cursor pelas linhas ,

 

ou então você pode usar um cabeçalho ,   crie um novo arquivo c++ com nome de graficos e coloque esse código

#include <windows.h>
typedef enum{black,blue,green,cyan,red,magenta,brown,lightgray,darkgray,
lightblue,lightgreen,lightcyan,lightred,lightmagenta,yellow,white} colors;

static int __BACKGROUND = 1;
static int __FOREGROUND = lightgray;

void textcolor_2 (int letras, int fundo){
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}
void gotoxy_2(int x, int y){
  COORD c;
  c.X = x;
  c.Y = y;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
int som(int f){
    Beep(f,150);
    return 0;
}

 nele ,  depois no outro programa que você for fazer coloque essa linha no início :

#include "graficos.cpp"

e salve ele na mesma pasta onde está o código com nome graficos.cpp ,   depois um programa como esse do exemplo , sem windows.h ,  vai funcionar  :

#include <iostream>
#include "graficos.cpp"
using namespace std;
int main(){
    textcolor_2(12,14);
    system("cls");
    gotoxy_2(25,9);
    cout<<"Colorindo Letras !\n\n\n"<<endl;
    som(800;
    return 0;
}

 

Postado

@devair1010 A ideia é boa, mas a sequências de escape já resolveram melhor meu problema, porque na verdade eu tinha que criar uma classe no C++ que fizesse isso, então eu acho que é até mais portável. mas obrigado pela ajuda

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!