int main()
{
int size = 512, i = 1;
char buffer[1000];
char *newFileTemp;
char const *chunk = "Chunk";
memset(buffer, 0, sizeof(buffer));
FILE *fb;
FILE *fp=fopen("blah.txt", "r");
if (fp == NULL)
{
perror("doesnt exist");
return 0;
}
fread(buffer,sizeof(char),sizeof(buffer), fp);
sprintf(newFileTemp, "%s%i", chunk, i);
printf("blah check %s",newFileTemp);
fb = fopen(newFileTemp, "wb");
if (fb == NULL)
{
perror("doesnt exist");
return 0;
}
fwrite(buffer, sizeof(char), sizeof(buffer), fb);
fclose(fp);
fclose(fb);
return 0;
}
我試圖用sprintf創建一個名爲chunk1的文件,它有文件blah.text(blah.txt已經創建)的數據。但即使代碼編譯正確,它也不會創建一個新文件。請幫忙。爲什麼我的代碼不能使用sprintf和fopen打開一個新文件?
如果你解釋了它的功能,那將會很棒。 – nicomp
請使用'snprintf()'而不是'sprintf()'。 (在這種情況下,它可能指出你沒有緩衝區大小來給它...) –