![]() |
#2
apull2021-02-02 22:06
|
是这样的,我在国外回复了一个小伙的疑问,他想编译出一个随机提问器。
我最终发出的代码是这样的:

#include<iostream> //input and output
#include<stdlib.h> //rand() and srand()
#include<time.h> //time()
#include<string.h> //use strcmp() to compare two strings
using namespace std;
int main(){
char* questions[4]={"2*37-6","1+1","8*7*6*5*4*3*2*1*0*(-1)","0-9"};
char* answers[4]={"68","2","0","-9"};
srand(time(0)*3); //set random number seed
int choice=rand()%4; //a random number between 0 and 3,actually
cout<<"Now I'm gonna ask you a question!\n";
cout<<questions[choice]; //output the random question
cout<<"\nPlease input your answer:";
char input[100];
cin>>input;
if(strcmp(input,answers[choice])==0) //0 means they are the same
cout<<"Oh my god!You answered it correctly.\n";
else
cout<<"Haha!That's not correct.The correct answer is:"<<answers[choice]<<".\n";
system("pause"); //pause
return 0;
}
#include<stdlib.h> //rand() and srand()
#include<time.h> //time()
#include<string.h> //use strcmp() to compare two strings
using namespace std;
int main(){
char* questions[4]={"2*37-6","1+1","8*7*6*5*4*3*2*1*0*(-1)","0-9"};
char* answers[4]={"68","2","0","-9"};
srand(time(0)*3); //set random number seed
int choice=rand()%4; //a random number between 0 and 3,actually
cout<<"Now I'm gonna ask you a question!\n";
cout<<questions[choice]; //output the random question
cout<<"\nPlease input your answer:";
char input[100];
cin>>input;
if(strcmp(input,answers[choice])==0) //0 means they are the same
cout<<"Oh my god!You answered it correctly.\n";
else
cout<<"Haha!That's not correct.The correct answer is:"<<answers[choice]<<".\n";
system("pause"); //pause
return 0;
}
虽然有一些警告,但这些代码在我的Visual Studio 2010和C++ Shell中都能正常运行。
发送的代码没问题,可是我在编辑代码的时候,发现了一个问题——
当我把
char input[100];
改成
char* input;
时,程序在中间就卡出去了。
我马上做了一个简单的实验:

#include<iostream>
using namespace std;
int main(){
char* buffer;
cin>>buffer;
cout<<buffer;
return 0;
}
using namespace std;
int main(){
char* buffer;
cin>>buffer;
cout<<buffer;
return 0;
}
结果在上面的代码中,buffer能够正常读取,程序能正常退出。
为什么一个cin能正常用,一个cin直接把我程序卡退了呢



求大佬帮助!
[此贴子已经被作者于2021-2-2 20:55编辑过]