Как сделать выравнивание файлов с помощью 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,TotSellQty,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,TotSellQty,LowerCircuitLimit,UpperCircuitLimit);