程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C語言基礎之格式化輸出控制長度

C語言基礎之格式化輸出控制長度

編輯:關於C++

C語言基礎之格式化輸出控制長度。本站提示廣大學習愛好者:(C語言基礎之格式化輸出控制長度)文章只能為提供參考,不一定能成為您想要的結果。以下是C語言基礎之格式化輸出控制長度正文


c語言格式化輸出控制長度

今天在實現ls命令的時候,輸出的文件名是上下對齊:

1  2  a.c  b  crawler text 公共的 視頻 文檔 音樂
1.c 2.c a.out b.c git   win  模板  圖片 下載 桌面

便想著實現對齊,想到了c的格式化輸出:

printf("%-10s",s);

這樣便實現了將字符串s占10格居左輸出.

但卻由一個難以解決的問題,上述的 10 不能提前預支,是程序運行時計算出來的,便想著能否這樣輸出:

int a=5;
char s[]="hell";
printf("%-%ds",a,s);

實際證明這樣時不行的,必須想別的解決辦法.

然後觀察printf的格式,printf的格式控制是在”“之中的,是否意味著可以用字符串代替”“,然後嘗試:

char a[]="%05s";
char s[]="hello";
printf(a,s);

成功輸出:

   hello

看來這樣可行,便編寫了代碼:

 int n=13;
  char na[3];
  if(n > 9) {
    na[0] = (n/10) + 48;
    na[1] = (n%10) + 48;
    na[2] = '\0';
  }
  else {
    na[0] = n + 48;
    na[1] = '\0';
  }
  char a[10]="%-";
  strcat(a,na);
  char s[]="s ";
  strcat(a,s);
  char b[]="hellow";
  puts(a);
  printf(a,b);

n為ls輸出的文件名的最大長度(目測應該不會大於99).

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved