cin >> name[10]; 僅讀取單一 char(1 byte),中文編碼(UTF-8/GBK)至少佔 2~3 bytes,導致截斷或亂碼。
char name[10] 是 10 個位元組陣列,name[10] 是第 11 個元素(越界)。cin >> name 遇空白斷字,且不支援多位元組字元正確寫入。std::string + std::getline(現代 C++ 推薦):
std::string name;
std::getline(std::cin, name); // 可讀含空白的完整行,支援 UTF-8
wchar_t / std::wstring(Windows 相容):
std::wstring name;
std::wcin >> name; // 需設定 locale: std::setlocale(LC_ALL, "");
char 陣列但正確讀取:
char name[50];
std::cin.getline(name, 50); // 讀整行,含中文位元組序列
原始碼檔案編碼、終端機編碼、資料庫/檔案編碼必須一致(建議全端 UTF-8),否則仍會出現亂碼。