Написание файла с использованием c программы в формате таблицы

Я хочу написать файл в формате таблицы с помощью программы. Я использую fputs для записи файла. Мой файл выглядит так:

    [sl] [Name] [School] [add]
    1 ABC DEF Dav India
    2 XYZ LLL USA

Но я хочу, чтобы выходной файл выглядел так:

    [sl]    [name]     [school]    [add]
     1      ABC DEF     DAV        INDIA
     2      XYZ         LLL        USA

Я хочу знать, есть ли что-то вроде спецификатора длины в fputs как в printf, чтобы я мог изменить формат файла.

2 ответа

Решение

Я думаю, что вы ищете fprintf, Узнайте больше о fprintf здесь. Он используется точно так же, как printf, кроме того, что пишет в файл.

РЕДАКТИРОВАТЬ

Если ваша строка хранится в разных переменных, используйте fprintf следующее:

fprintf(fp,"%-15s %-15s %-15s %-15s", "string 1", "string 2", "string 3", "string 4");

Число 15 является фиксированной длиной, которую будет использовать строка (вы можете изменить ее в зависимости от максимальной длины строки или от других предпочтений). Знак минус для левой оправданной строки.

Как указал Кьюби, вы захотите использовать fprintf вместо fputs это сократит количество необходимого кода. fprintf запишет ваши данные в файл в соответствии со строкой формата. Поскольку ваши данные будут строковыми данными, вы будете записывать их по частям, указав% s в строке формата для каждого куска. Возьмите например свой ABC DEF слова. Ты можешь использовать fprintf записать строковые литералы следующим образом:

fprintf (fp, "   %s    %s\n", "ABC", "DEF");

Вы также можете указать минимальную ширину поля для каждого слова, которое вы пишете, указав и целое число между % а также s, такие как %10s написать '-------ABC' с минимальной шириной 10 символов. Вы также можете разместить - знак перед номером слева выровнять строку. Например %-10s вывести "ABC-------". (тире - это пробелы, просто для иллюстрации). Может помочь разделить нужную информацию в табличной форме, не записывая различное количество пробелов для каждого отдельного вызова fprintf.

Смотрите 'man 3 fprintf` для всех вариантов. Есть буквально тысячи примеров в Интернете, чтобы помочь.

Другие вопросы по тегам