【发布时间】:2017-06-07 18:44:05
【问题描述】:
假设我们有一个整数数组 1,2,3(最大为 36,因此每个数字都不是单个数字),我想将文件命名为 123...36.txt。我将在旅途中执行此操作,因此我需要根据 int 数组值更改文件名
我在网上查了一些解决方案,都没有奏效。有一个简单的解决方法吗?谢谢
int main(int argc, char **argv) {
int i;
FILE *ptr;
int b[3]={1,2,3};
char name[FILENAME_MAX];
for(i=0;i<3;i++) itoa(b[i],name[i],10);
name[3]='.';
name[4]='t';
name[5]='x';
name[6]='t';
name[7]='\0';
ptr = fopen(name, "w");
fclose(ptr);
return 0;
}
【问题讨论】:
-
为什么不使用
std::string对象而不是字符数组? -
我强烈建议使用 C++ 和
std::string作为名称。如果这样做,最简单的方法可能是遍历数组,将值转换为字符串并将其附加到std::string name。 -
itoa() 的第二个参数是指向将存储字符串的缓冲区的指针,而不是字符。
-
记得在达到操作系统的文件路径长度限制之前停止。
-
为什么要使用单独的
ints 来表示数字的每个数字?int可以代表123。您已使用 c++ 标记了问题,因此请使用 c++ 为您提供的功能。std::to_string(number) + ".txt";就是你所需要的。