PDA

Visualizza la versione completa : [C++] Centrare testo scritto in output


Salvatore_91
12-10-2008, 11:04
CIao, qualkuno di voi mi saprebbe dire il codice di come centrare l'output, usando ad esempio:

cout<<"ciao"; cioè vorrei far apparire ciao al centro della pagina.

Salvatore_91
12-10-2008, 11:10
penso di aver scritto tutto correttamente così

pallinopinco
12-10-2008, 11:18
Puoi usare cout.width(distanza_da_sinistra), ma per calcolare tale distanza non mi sembra che ci siano funzioni standard, devi ricorrere a codice non portabile.



#include <iostream>
#include <string>

using namespace std;

void centra(string s)
{
int distanza;

distanza = 40 + (s.length()/2); // In realtà dovresti calcolare dinamicamente il valore di offset (40)
cout.width(distanza);
cout << s << endl;
}

int main (void)
{
centra("Ciao");
return 0;
}

Salvatore_91
12-10-2008, 11:27
la distanza come deve essere espressa?? in numeri. io ho scritto così, ma nn succede nulla:

cout.width(5);
cout<<"Scrivi il numero = ";

pallinopinco
12-10-2008, 11:34
Il codice del post precedente produce il seguente output:



C:\esempio>centra.exe
Ciao

C:\esempio>

MItaly
12-10-2008, 15:11
Per usare in maniera "avanzata" la console comunque ti consiglio di usare librerie apposite (come le ncurses), oppure, se la console ti sta stretta, di considerare l'eventualità di passare ad applicazioni grafiche (GUI).
---EDIT---
Mi sbagliavo, le ncurses non sono state portate su Windows; be', studiati le la gestione della console sotto Windows (http://msdn.microsoft.com/en-us/library/ms682010(VS.85).aspx).

Loading