我正在使用以下代码,但它只询问我输入并关闭而不会提示我的输入
#include <iostream>
#include <string>
#include <cstring>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main(){
int balance=0;
int withdraw=0;
char* str;
cin.getline(str,10);
cout<<str;
withdraw=atoi(strtok(str," "));
balance=atoi(strtok(NULL," "));
cout<<withdraw<<" "<<balance;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
char* str;
Run Code Online (Sandbox Code Playgroud)
这只会给你一个指针.该指针不指向任何地方,特别是在char你可以写入的某些s上.当您调用时cin.getline(str,10),它会尝试写入此指针指向的位置.这给你未定义的行为.一个简单的解决方法是创建str一个10 chars 数组:
char str[10];
Run Code Online (Sandbox Code Playgroud)
但是,我建议您开始使用,std::string并找出如何strtok使用a 进行操作std::string.提示:看看std::istringstream.