C++电话簿项目报function-definition not allowed before '{'错误如何解决
编译错误修复方案
你遇到的a function-definition is not allowed here before '{' token报错的根源是代码括号不匹配,C++不允许在函数内部定义另一个函数,你的代码存在两个括号问题:
izmenaPodataka()函数中,外层的for(int i=0; brojElemenata()>=i ; i++)循环缺少对应的闭合大括号},导致编译器认为后续的uklanjanjePodataka()等函数是在izmenaPodataka()内部定义的,直接触发编译错误- 全部代码的末尾多了一个多余的闭合大括号
}
具体修复步骤
- 在
izmenaPodataka()函数的else分支结束后、tel_ime.close();代码之前,添加一个},闭合外层的for循环 - 删除整段代码最后多余的一个
}
修复后即可解决当前的编译报错,另外你的代码还存在几个潜在逻辑问题可后续优化:
while(!file.eof())的写法会多读入一行空数据,建议改为while (file >> 变量)的判断方式- 打开文件后没有判断是否打开成功,文件不存在时会触发逻辑异常
- 写入文件时部分位置缺少换行符,会导致后续读取数据错乱
内容的提问来源于stack exchange,提问作者Petar Pera Andrejic
相关产品推荐
相关产品推荐

