Как сделать выравнивание файлов с помощью fprintf в C?

У меня проблема с выравниванием файла с помощью 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,...

1 ответ

Решение

Подобно printf() Вы должны использовать некоторые левые и правые выравнивания

printf() записать вывод в стандартный вывод

fprintf() записать вывод в заданный выходной поток;

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

как это только вам нужно использовать с fprintf()

В вашем файле максимум 6 цифр.

заменить все %ld с %7ld и добавьте \n после каждых 3 или 4 чисел, чтобы получить идеальное выравнивание

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); 
Другие вопросы по тегам