0

我想用 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

我想知道fputsprintf 中是否有类似长度说明符的东西,以便我可以更改文件的格式。

4

2 回答 2

0

我认为您正在寻找的是fprintf. 在此处了解有关 fprintf 的更多信息。它的使用方式与 完全相同printf,只是它写入文件。

编辑

如果您的字符串存储在不同的变量中,则使用fprintf如下:

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

该数字15是字符串将使用的固定长度(您可以根据您拥有的最大字符串长度或其他偏好来更改此长度)。减号用于左对齐字符串。

于 2014-06-27T05:10:09.403 回答
0

正如 Kyuubi 指定的那样,您将希望使用它fprintf而不是fputs它会减少所需的代码量。它将根据格式字符串将fprintf您的数据写入文件。由于您的数据将是字符串数据,因此您将分片写出,并在每个片段的格式字符串中指定 %s。以你的ABC DEF话为例。您可以使用fprintf如下方式编写字符串文字:

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

您还可以通过指定 和 之间的整数来指定您编写的每个单词的最小字段宽度%s例如%10s以最小宽度写出 '-------ABC' 10 个字符。您还可以-在数字前放置一个符号以使字符串左对齐。例如%-10s输出'ABC-------'。(破折号实际上是空格,仅用于说明)可以帮助您将所需的信息分隔为表格形式,而无需为每个不同的 fprintf 调用写出不同数量的空格。

有关所有选项,请参见“man 3 fprintf”。网络上确实有 1000 多个示例可以提供帮助。

于 2014-06-27T05:36:28.920 回答