帮我看看这段代码有什么问题void read_data(){ start: read.open("C:\\Users\\pq2293\\AppData\\Local\\moneygame\\data.db"); if(!read.is_open()){ system("type nul > %userprofile%\\AppData\\Local\\moneygame\\data.db"); save_data(); goto start; } char m[255]; char PS[255]; read.getline(m,255); read.getline(PS,255); strchr(m,money); strchr(PS,physical_strength); }
时间: 2023-07-24 11:16:06 浏览: 93
这段代码存在几个问题:
1. 在打开文件之前,应该先关闭文件。
2. 使用 `goto` 语句是不推荐的,并且容易导致代码难以维护。可以使用循环来替代 `goto` 语句。
3. 在使用 `strchr` 函数时,应该将返回值赋给一个变量或者使用其它方式进行处理,否则 `strchr` 函数的调用并没有实际作用。
下面是修正后的代码:
```cpp
void read_data() {
char m[255];
char PS[255];
while (true) {
std::ifstream read("C:\\Users\\pq2293\\AppData\\Local\\moneygame\\data.db");
if (!read.is_open()) {
std::system("type nul > %userprofile%\\AppData\\Local\\moneygame\\data.db");
save_data();
} else {
read.getline(m, 255);
read.getline(PS, 255);
break;
}
}
// 使用 m 和 PS 进行后续操作
}
```
在这段代码中,我们使用了循环来尝试打开文件,直到成功打开文件或者创建一个新的文件。然后我们读取文件内容并进行后续操作。请注意,这只是对你提供的代码的修改建议,具体的修改还需要根据你的需求进行调整。
阅读全文