PDA

View Full Version : [C] centrare stringa di output


Mr NiKo Hyde
07-05-2012, 19:41
ciao ragazzi, esiste un modo per stampare al centro una stringa usando la printf su consolle dos?

grazie

Mond0
08-05-2012, 11:21
guarda, un qualcosa che lo faccia "automaticamente" non lo so :P
ma scrivendo ad esempio:

printf("numero: %Nd", variabile)

con N= numero a piacere

puoi formattare il testo come ti pare...

lorenzo001
08-05-2012, 11:25
Con Windows, puoi usare le API per il posizionamento del cursore nella console.

Mr NiKo Hyde
08-05-2012, 12:24
mondo nn credo faccia al caso mio :)
lorenzo potresti spiegarmi brevemente come utilizzarle? o anche un sito dove le spiegano chiaramente :) non l'ho trovo :mc:


in pratica vorrei centrare questo "logo"
avete un sistema piu semplice per stampare questi caratteri ascii speciali? :sofico:


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

char angolosxalto=201;
char lineaor=205;
char talta=203;
char angolodxalto=187;

char lineaver=186;
char tsx=204;
char tdx=185;
char croce=206;

char angolosxbasso=200;
char tbassa=202;

char nomelineaver=179;
char nomeangolosxbasso=192;
char nomelineaor=196;
char nomeangolosxalto=218;
char nomegsuperiore=170;
//char nomeginferiore=191;
char nomeangolodxbasso=217;
char nomeangolodxalto=191;
char nomebastone=219;
char nomepunto=220;
char angolodxbasso=188;

char prova=245;
printf("\n");
printf("\t%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c %c%c%c%c %c%c%c%c %c\n",angolosxalto,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,angolodxalto,nomeangolosxalto,nomelineaor,nomelineaor,nomegsuperiore,nomeangolosxalto,nomelineaor,nomelineaor,nomeangolodxalto,nomebastone);
printf("\t%c 2%c 10%c 21%c 33%c %c %c 63%c %c %c BIN%c %c %c %c %c\n",lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,nomelineaver,nomeangolodxalto,nomelineaver,nomelineaver,nomebastone);
printf("\t%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c %c%c%c%c %c%c%c%c %c\n",tsx,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,tdx,nomeangolosxbasso,nomelineaor,nomelineaor,nomeangolodxbasso,nomeangolosxbasso,nomelineaor,nomelineaor,nomeangolodxbasso,nomepunto);
printf("\t%c %c 11%c %c %c 44%c 5%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,angolosxalto,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,talta,lineaor,lineaor,lineaor,angolodxalto);
printf("\t%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c %c 11%c %c %c 44%c 50%c 64%c 78%c %c\n",tsx,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver);
printf("\t%c 4%c 16%c %c 38%c %c %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,tsx,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,tdx);
printf("\t%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c 4%c 16%c %c 38%c %c %c 66%c %c 82%c\n",angolosxbasso,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver);
printf("\tCreato da %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",tsx,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,croce,lineaor,lineaor,lineaor,tdx);
printf("\t %c 2%c 10%c 21%c 33%c %c %c 63%c %c %c\n",lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver,lineaver);
printf("\t %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",angolosxbasso,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,tbassa,lineaor,lineaor,lineaor,angolodxbasso);



printf("\n\n");
printf("\t\t\t%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", nomeangolosxalto,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomeangolodxalto);
printf("\t\t\t%c1. Nuova Partita %c\n",nomelineaver,nomelineaver);
printf("\t\t\t%c2. Carica Partita %c\n",nomelineaver,nomelineaver);
printf("\t\t\t%c3. Impostazioni di Gioco%c\n",nomelineaver,nomelineaver);
printf("\t\t\t%c4. Top 10 %c\n",nomelineaver,nomelineaver);
printf("\t\t\t%c5. Istruzioni di Gioco %c\n",nomelineaver,nomelineaver);
printf("\t\t\t%c %c\n",nomelineaver,nomelineaver);
printf("\t\t\t%c0. Esci %c\n",nomelineaver,nomelineaver);
printf("\t\t\t%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", nomeangolosxbasso,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomelineaor,nomeangolodxbasso);


system("PAUSE");
return 0;
}

lorenzo001
08-05-2012, 13:39
Intendo che puoi usare questa funzione


#include <windows.h>

void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}


per posizionare il cursore nella console prima di utilizzare la printf

A questo punto, centrare la stringa dovrebbe essere facile ...