經查找一些資料,並且親自實驗之后得出:
r+:打開已存在的文件時,光標位於開頭,文件可讀,可寫,
寫數據時,由於光標位於開頭,所以會覆蓋原有數據
w+:打開的文件已存在時,將覆蓋原文件
a+:打開已存在的文件時,光標位於文件尾,文件可讀,可寫
讀數據時,光標會回到開頭
FILE *Binfid; h_u32 framenum = 0; h_s32 frameformat = 0; char filename_last[256] = "output.txt"; void vs_printf_open(char filename[], int framenum1, int format) { int temp_str = 0; temp_str = strcmp(filename, filename_last); // strcmp返回的規律是什么? do { if (temp_str != 0) { Binfid = fopen(filename, "w+"); } else { Binfid = fopen(filename, "a+"); } } while (Binfid == NULL); // 為什么寫成 do while??? if (Binfid == NULL) { printf("this is error!\r\n"); } framenum = framenum1; frameformat = format; memcpy(filename_last, filename, sizeof(char) * 256); // 保證每一幀切換時,是添加 }