0

我有一个文件,我想在其中插入数据,如下所示:

列大小:5个空格5个空格12个空格

25100 23501 169247103621

但我仍然有这两个条件

  1. 如果字符串大于列大小,我会从字符串中消除奇数长度。
  2. 如果字符串小于列大小,我用空格填充字符串的其余部分。

例1:

2510025 23501 169247103621

变得:

25100 23501 169247103621

例 2:

25 23501 169247103621

变得:

25    23501 169247103621

我设法在 c 中得到这个printf,但现在我想在文件中打印一些格式。

#include <stdio.h>


int main(int argc, char **argv)
{
   char FMT[] = "%-5.5s %5s %-6.12s\n";
   FILE *hFile = NULL;
   char *string  = "freeifaddrss";
   char *string2 = "cards";
   char *string3 = "ifa_nextifa_next";
   printf(FMT, string, string2, string3);
   return 0;
}
4

2 回答 2

2

要写入文件,您可以重定向程序的输出,例如:

./prog > out.txt

或在程序中打开一个文件并写入:

FILE *f = fopen(argv[1], "w");
if (f == NULL) {
     perror(argv[1]);
     exit(EXIT_FAILURE);
}
...
fprintf(f, FMT, string, string2, string3);

调用它:

./prog out.txt
于 2012-11-20T20:50:34.027 回答
0

你为什么不试试?

fp = fopen( "output.txt", "w" );
if( fp != NULL )
  fprintf( fp, "Hello %s\n", name );
于 2012-11-20T21:02:20.103 回答