我正在尝试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;
}
如何将路径返回到空char数组,以便我可以再次连接? 或者有更好的方法吗?
答案 0 :(得分:1)
由于它是空终止的,只需执行
path[0] = 0;
答案 1 :(得分:0)
答案 2 :(得分:0)
它出错是因为path
没有足够的空间来连接所有字符串,直到EOF
?!
至少将strncat(path,folder,8);
替换为strncpy(path,folder,8);
并删除path=0;
。
或者只需将path=0;
替换为path[0]=0;
。
答案 3 :(得分:0)
将path=0;
更改为path[0] = 0;
。这将使字符串为空。
答案 4 :(得分:0)
设置路径[0] = 0;这样的例程注意到0为结束。
答案 5 :(得分: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");
}