C++ C++;-使用atoi()时未处理的异常
当使用这段代码时,它抛出一个未经处理的写入异常,我几乎可以肯定这与atoi()函数有关C++ C++;-使用atoi()时未处理的异常,c++,exception,atoi,unhandled,C++,Exception,Atoi,Unhandled,当使用这段代码时,它抛出一个未经处理的写入异常,我几乎可以肯定这与atoi()函数有关 while(true){ char* item = ""; cin >> item; int numItem = atoi(item); if(numItem){ if(numItem<
while(true){
char* item = "";
cin >> item;
int numItem = atoi(item);
if(numItem){
if(numItem<=backpackSpaces){
equipItem(backpack[numItem]);
break;
}else{
cout << "No such item." << endl;
}
}else if(item == "back"){
cout << "Choose an option from the original choices. If you can't remember what they were, scroll up." << endl;
break;
}else{
cout << "Command not recognised." << endl;
}
}
while(true){
字符*项=”;
cin>>项目;
int numItem=atoi(项目);
if(numItem){
如果(numItem使用:
char*item=“”
使项指向只读内存-您正在尝试修改它。字符串文本的指针最好写为const char*item=“”
,然后编译器将确保您不修改它。char*item=“”
合法的原因是与C向后兼容。使用:
char*item=”“
使项指向只读内存-您正在尝试修改它。字符串文本的指针最好写为const char*item=”“
-然后编译器将确保您不修改它。原因是char*item=“”
与C的向后兼容性是合法的。我知道它与数组有关>>谢谢,更好的方法是使用std::string
@Pig Head:use strcmp not==来比较C字符串。或者按照大家的建议,使用std::string:)我将使用strcmp-我使用的是std::string,但不能使用atoi()将它们转换为整数。@Pig Head:当然可以,atoi(str.c_str())我知道其中的数组与此有关>>谢谢,更好的做法是,使用std::string
@Pig Head:use strcmp not==来比较C字符串。或者按照大家的建议,使用std::string:)我会使用strcmp-我使用std::string,但不能用atoi()将它们转换为整数。@Pig Head:当然可以,atoi(str.C_str())
char item[20];