2011-01-08 9 views
1

Wie kann ich sicherstellen, dass dies nicht passiert? Gibt es eine Möglichkeit, den genauen Ort nach Zahlen zu zeigen?Ausgabe Platzierung in C mit Tabs Problem

Name   UID  GID  Dir  Host 
root 0  0  /root 
paingpyi  500  500  /home/paingpyi 192.168.12.1 
paingpyi  500  500  /home/paingpyi 192.168.12.1 

-Code ist

printf("Name \t\tUID \tGID \tDir \tHost\n"); 
printf("%s \t\t%d \t%d \t%s \t%s \n",up->ut_user,pw->pw_uid,pw->pw_gid,pw->pw_dir,up->ut_host); 

Antwort

4

Die printf Breite Bezeich für diese Art von Aufgaben besser geeignet sind als \t. Sie sollten einen Blick in den Abschnitt "Feldbreite" von the manual werfen.

+0

sollte er etwas wie '% -16.16s' für Strings und'% -8d' für ganze Zahlen verwenden – Christoph

+0

Was ist, wenn ich auch für Header formatieren möchte? Ich habe keine $ s oder $ d für die Kopfzeile. Was soll ich tun? – Devyn

+2

@Devyn können Sie etwas wie 'printf verwenden ("% - 16s% -8s% -8s \ n "," Name "," UID "," GID ")' – icecrime