Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;-使用atoi()时未处理的异常_C++_Exception_Atoi_Unhandled - Fatal编程技术网

C++ C++;-使用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<

当使用这段代码时,它抛出一个未经处理的写入异常,我几乎可以肯定这与atoi()函数有关

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];