我试图从a到x迭代并创建文件a.dat,b.dat,…,x.dat
int main()
{
char letter = 'A';
FILE *fp;
while (letter < 0x59) {
printf("%c", letter);
char *fname = "";
fname[0] = letter;
fname= strcat(fname, ".dat");
const char * fnam = fname;
fp = fopen(fnam, "ab+");
fclose( fp );
letter++;
}
return 0;
}
它在字母上迭代很好,但是这一行
fname[0] = letter;
由于“分段错误”导致程序崩溃。在调试器中,它说“无法访问地址..的内存”
我想用字母和“.dat”创建一个字符串,为此我创建了一个空字符串,并通过给它的0元素指定字母的值,使它的第一个字符成为我想要的字母。但它不起作用,我不明白为什么。
最佳答案
只需对文件名使用char数组:
char filename[] = "_.dat";
for (char letter = 'A'; letter <= 'X'; ++letter) {
filename[0] = letter;
FILE* fp = fopen(filename, "ab+");
// etc.
}
关于c++ - 从“a”迭代到“x”并为每个字母创建一个“.dat”文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26494628/