2011-01-08 3 views
1

このようなことが起こらないようにするにはどうすればよいですか?正確な場所を数字で表示する方法はありますか?タブでCを出力する問題

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 

コード

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); 

答えて

4

printf幅指定子は\tよりタスクのこの種のに適しています。 the manualの「フィールドの幅」セクションを調べる必要があります。

+0

具体的には、文字列に '%-16.16s'、整数に'%-8d'のようなものを使うべきです – Christoph

+0

ヘッダ用にフォーマットしたいのですが?ヘッダー行には$ sまたは$ dがありません。何をすればよいでしょうか? – Devyn

+2

@Devyn 'printf("% - 16s%-8s%-8s \ n "、"名前 "、" UID "、" GID ")のようなものを使用することができます。 – icecrime