無法編譯代碼給最後一個令牌「}」中的錯誤。對不起,這是一種保存爲二進制文件的功能。輸入結束時,錯誤是預期的聲明或聲明。輸入結束時的預期聲明或聲明 - 錯誤
void gravarRegistos(contadorStruct *contador)
{
char sair;
int numelem = 0, erro = 0;
FILE *ficheiro;
do {
printf("Deseja gravar as alteracoes? (S/N)\n");
sair = lerCaracter();
if (sair == 'S') {
ficheiro = fopen("data.dat", "wb");
if (ficheiro == NULL)
printf("Falha a abrir o ficheiro\n");
else {
fwrite(contador, sizeof(contadorStruct),1, ficheiro);
numelem = fwrite(veiculos, sizeof(veiculosStruct),
contador->nrVeiculos, ficheiro);
if (numelem != contador->nrVeiculos) {
printf("Ocorreu um erro a gravar os dados no ficheiro,
apenas gravou %d Carros", numelem);
erro = fclose(ficheiro);
if (erro)
printf("Erro %d a fechar o ficheiro", erro);
}
}
}
} while(sair != 'S' && sair !='N');
}
請包括您在帖子中收到的實際錯誤消息。 – TylerH
您發佈的代碼沒有任何明顯的錯誤。這可能是你沒有顯示的其他代碼部分(編譯器檢測到錯誤並不總是錯誤根源)。 – kaylum
特別是,查找不平衡的大括號('{}')或圓括號('()'),並在文件的前面或隱藏在標題中查找丟失的分號(';')。 –