1. 你的student struct裏面的name是char而非char[],或者是char *用於動態申請內存。這是無法編譯的。其他編譯小錯誤自己找吧。
2. write是用於寫二進制的,即你自己寫的ios::binary。二進制和我們平時看到的文件完全是兩回事。平時我們看到的123,實際上是字符串"123"而不是數值123。寫二進制的時候,寫的是數值123,對應的字母你可以在網上找ASCII表查找。(http://www.asciitable.com/),123正好是'{'。
3. 如果你以文本形式寫文件,就不要使用ios::binary。有關fstream,可以查閱 (http://en.cppreference.com/w/cpp/io/basic_fstream)