1

我正在尝试 strcat 一个路径名以传递给 fopen 以在 while 循环中创建多个文件名。

char path[30]="";
while(!feof(stdin))
{
    strncat(path,folder,8);
    strcat(path,filename);
    strncat(path,ext,4);
    printf("file path:%s\n",path);
    File[n] = fopen(path,"a");
    path=0;
}

如何将路径返回到空字符数组,以便再次连接?还是有更好的方法来做到这一点?

4

5 回答 5

1

由于它是空终止的,只需执行

path[0] = 0;
于 2013-03-04T07:22:23.673 回答
0

试试memset()函数。它将允许您清理阵列。

写:

memset((void*)path, 0, 30*sizeof(char));

代替

path = 0;
于 2013-03-04T07:18:11.167 回答
0

更改path=0;path[0] = 0;。这将使字符串为空。

于 2013-03-04T07:21:19.897 回答
0

设置路径[0] = 0;这样的例程以 0 为结束。

于 2013-03-04T07:22:35.330 回答
0

用于snprintf创建路径的内容

#define MAX_PATH_SIZE 30
char path[MAX_PATH_SIZE] = "";
while (!feof(stdin))
{
  snprintf(path, MAX_PATH_SIZE, "%s%s%s", folder, filename, ext);
  printf("file path:%s\n",path);
  File[n] = fopen(path,"a");
}
于 2013-03-04T07:24:57.057 回答