在C语言中,如何在文件名后面加上数字?

2024-09-29 17:22:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有点小问题。我需要在一个小程序中对相当多的文件执行一些小操作。到目前为止,我已经决定在一个循环中操作它们,只需更改名称后面的数字。所有文件都命名为TFxx.txt格式其中xx是数字从1增加到80。那么我怎样才能一个接一个地打开它们呢?我试过了:

for(i=1; i<=80; i++) {
   char name[8] = "TF"+i+".txt";
   FILE = open(name, r);
   /* Do something */
  }

如你所见,第二行是用python编写的,而不是用C编写的。我曾尝试用C对这个程序进行类似的编号,但我还没有找到如何做到这一点。格式不需要像第二行那样,但是我想听听如何解决这个问题的建议。我需要做的只是能够打开许多文件并对它们执行相同的操作。在


Tags: 文件name程序txt名称fortf格式
3条回答

可以按如下方式使用sprintf:

for(i=0; i<=80; i++) {
   char name[32];
   memset(name, 0, sizeof(name));
   FILE *fp;
   sprintf(name, "TF%d.txt", i);
   fp = fopen(name, "r");
   /* Do something */
  }

让我们假设你的只是伪代码,否则问题不仅仅是

char name[8] = "TF"+i+".txt";

在这里,您可以使用求和来连接字符串并将整数转换为字符串。。。(这在某些语言上是合理的,绝对不是在C语言中,+只是数字之间的和)。。。但是FILE = open...也有问题。。。在

^{pr2}$

会填充你的名字(snprintf(name, BUFLEN, "TF%d.txt")可能更好,但它是C99,而另一个也是C89)。在

可以使用FILE *fh = fopen(name, "r")之类的东西打开文件进行读取。在

除了丹尼尔斯的回答,我想补充一下 char name[8]应该稍大一点,以容纳终止'\0'char name[20];

并且FILE = open(name,r);应该是{}

相关问题 更多 >

    热门问题