Páginas

quarta-feira, 5 de outubro de 2011

Converge()

Este é um daqueles programas aparentemente inúteis, porém divertidos.
A grande sacada deste programa é a função converge. Esta função escreve no console uma string convergindo para o meio, isto é:
- letra 0;
- letra n;
- letra 1;
- letra n-1;
...
De forma que o texto passado por parâmetro seja por fim escrito.
Let's to the code:

-----
#include "stdio.h"
#include "windows.h"

int tamanhoString(char *str){
     int tamanho = 0;
     while(*str){
        tamanho++;
        *str++;
     }
     return tamanho;
}

void gotoxy(int x, int y){
      COORD c;
      c.X = x;
      c.Y = y;
      SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void converge( int line, char *msg ){
      int i, j;
            for( i = 1, j = tamanhoString(msg); i < j; i++, j-- ){
            gotoxy(i, line);
            printf("%c", msg[i-1]);
            gotoxy(j, line);
            printf("%c", msg[j-1]);
      }
}
int main(){
     converge(10, "Testando a funcao converge()");
     getchar();
     return 0;
}
-----

Como você pôde perceber, utilizamos uma função já implementada: SetConsoleCursorPosition.
Por este motivo, incluímos a biblioteca windows.h e, obviamente, este programa só funciona em ambiente Windows. Para quem utiliza Linux, se não me engano, utilizamos a biblioteca graph.h para usar a função já implementada gotoxy();

Nenhum comentário:

Postar um comentário