使用 fprintf 寫入檔案時若出現亂碼,常見原因是在格式化輸出函數中錯誤地使用了取址符號 &。printf 家族函數(包括 fprintf)不需要對變數取地址,應直接傳遞變數本身。
例如 fprintf(fp, "%d %s %d", student[i].numb, student[i].name, student[i].score) 是正確的寫法,而加上 & 會傳遞錯誤的位址,導致輸出內容異常。
另外,請確認字元陣列的大小足夠,並正確使用 %s 處理字串,這樣才能避免寫入檔案時出現亂碼。