Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Kilin
    Registrato dal
    Mar 2003
    Messaggi
    453

    [c++] allineamento e tab...

    ciao a tutti ,ho un problema un po' sciocco..

    quando stampo delle liste ad esempio di nomi in c++, e voglio affiancare ad ogni nome un numero identificativo separandoli da un tab, ho il problema che se il nome è troppo corto il tab viene più corto, e la colonna dei numeri viene sballata... io credevo che il tab allineasse indifferentemente dalla lunghezza di quello che c'è prima, o comunque che venisse fuori sempre dello stesso numero di spazi, invece pare di no..

    come posso risolvere?

    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    No ... il tab non funziona cosi' ... puoi rimediare visualizzando un adeguato numero di spazi, calcolandoli prima ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Usa le formattazioni di printf(), sono lì per questo.

    codice:
      /* Stampa in tre colonne: 20 10 10 caratteri */
      printf("%20s|%10s|%10s\n", colonna1, colonna2, colonna3);

  4. #4
    si infatti..è sufficiente usare la printf con il numero di spazi da mettere prima del valore della variabile..

  5. #5
    Utente di HTML.it L'avatar di Kilin
    Registrato dal
    Mar 2003
    Messaggi
    453
    interessante!

    peccato che non mi funzioni in questo modo, dove sbaglio?

    codice:
    printf("%40s|%40s|%40s\n", p->info.cognome, p->info.nome, p->info.matricola);
    si interrompe il programma a tempo di esecuzione.. ma è tutto corretto, se metto in questo modo in un cout funziona, quindi dovrebbe andare bene..

    EDIT:

    il problema sembra essere con p->info.matricola, che è un numero... perchè non gli va bene?

    RI-EDIT:
    ho letto in giro come lavora il printf, devo cambiare quella "s" che sta per string e dire che lì stampo un numero! provo e vi dico, ma sicuramente andrà bene...grazie!

  6. #6
    Utente di HTML.it L'avatar di Kilin
    Registrato dal
    Mar 2003
    Messaggi
    453
    okei, ora funziona.... una cosa sola: è possibile far allineare a sinistra invece che a destra le cose che stampo?

  7. #7
    Sì, per le stringhe (se non erro) è:

    codice:
    printf ("%-20s\n", a_sinistra);
    o qualcosa del genere...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.