1

我在使用 C 对齐文件时遇到问题

程序行:

    fprintf(fpscrip,"\n %ld , %ld , %ld , %ld , %ld , %ld , %ld , %ld , %ld , %ld , %ld",scripCode,tradeVolume,LTQ,LTR,OpenRate,CloseRate,HighRate,LowRate,TotBuyQty,To‌​tSellQty,LowerCircuitLimit,UpperCircuitLimit)

文件 o/p

524667 , 7 , 1 , 34010 , 34500 , 34825 , 34500 , 34010 , 728 , 698 , 27865 
 533573 , 83625 , 50 , 14260 , 13655 , 13595 , 14440 , 13575 , 9202 , 15989 , 10880 

结果应该像这样打印:-

524667 ,  7  , 1 ,... 
533573 ,83625,50,...
4

1 回答 1

2

就像printf()你需要使用一些左右对齐

printf() 将输出写入标准输出

fprintf()将输出写入给定的输出流;

printf("%6d",num); // if num have 3 digits then adds three more spaces at left of num.

像这样只有你需要使用fprintf()

在您的文件中,您的最大数字只有 6 位。

将所有替换%ld%7ld并在每 3 或 4 个数字后添加 \n 以获得完美对齐

fprintf(fpscrip,"\n %7ld , %7ld , %7ld , %7ld , %7ld , %7ld , %7ld , %7ld , %7ld , %7ld , %7ld ",scripCode,tradeVolume,LTQ,LTR,OpenRate,CloseRate,HighRate,LowRate,TotBuyQty,To‌​tSellQty,LowerCircuitLimit,UpperCircuitLimit); 
于 2013-09-11T05:40:13.343 回答