我正在尝试使用此功能,我可以调试并将其缩小到名为addrstore的变量。我不知道为什么它会给我这个错误。我已经尝试过变量,设置数字等等但是我似乎无法让它工作而不会让我错误。我能够忽略错误,程序似乎工作正常,但每次运行时,它都会给我错误,“字符串下标超出范围”。
这是代码
void loading(string file){
ifstream object;
BYTE var;
ADDRESS addr;
string input;
object.open(file);
if (!object){
cout << "ERROR: Could not load " << file << endl;
}
else{
string line;
string addrstore;
cout << "loaded the file " << file << endl;
while (!object.eof()){
getline(object, line);
addr = 0;
if (line[0] == 'T'){
for (int x = 1; x < 7; x++){
addrstore[x - 1] = 0;
//addrstore[x - 1] = line[x];
}
addr = numconvert(addrstore);
}
int i = 7;
while (line.size() != 0 && line[0] == 'T' && i < line.size()){
input = line[i] + line[i + 1];
var = numconvert(input);
PutMem(addr, &var, 0);
i += 2;
addr++;
}
}
object.close();
}
}
答案 0 :(得分:0)
您永远不会初始化变量addrstore
并在程序中的任何位置为其指定一些值。这导致了一个问题。
如果没有在其他任何地方为变量赋值,您如何才能访问addrstore[x - 1]