C++ 为什么我的代码在完成之前总是返回?
为什么我的代码不能正常运行?当它到达if-else语句时,它从用户那里获取一个输入,然后在我输入任何其他内容之前退出。我不确定这是否是由于功能没有正确返回,但我真的非常感谢一些帮助。谢谢C++ 为什么我的代码在完成之前总是返回?,c++,visual-studio-2010,C++,Visual Studio 2010,为什么我的代码不能正常运行?当它到达if-else语句时,它从用户那里获取一个输入,然后在我输入任何其他内容之前退出。我不确定这是否是由于功能没有正确返回,但我真的非常感谢一些帮助。谢谢 #include <iostream> #include <fstream> using namespace std; void studentenrollment (char answer); int main() { char answer;
#include <iostream>
#include <fstream>
using namespace std;
void studentenrollment (char answer);
int main()
{
char answer; //declaring variables for main
cout << "Welcome to Luton Sixth Form" << endl; //greeting the user
cout << "Please State if you are enrolled or not at the sixth form: Y/N" << endl;//giving user options
cin >> answer;//taking options from user
studentenrollment(answer); //calling student enrollment function
return 0;
}
void studentenrollment (char answer)
{
unsigned char name;
int dob;
if (answer=='Y'||answer=='y')
{
cout << "Welcome to higher education" << endl;
cout << "Please state your name" << endl;
cin >> name;
ofstream myfile;
myfile.open("StudentAccess.txt");
myfile << name << endl;
myfile.close();
cout << "Your name is now saved, you have access to the gateway" << endl;
}
else if(answer=='N'||answer=='n')
{
cout << "Please state your name" << endl;
cin >> name;
cout << "Please enter your date of birth" << endl;
cin >> dob;
ofstream myfile;
myfile.open("StudentEnrollment.txt");
myfile << name << dob << endl;
myfile.close();
cout << "You will now go through enrollment" << endl;
}
// return 0;
}
#包括
#包括
使用名称空间std;
无效学生登记(字符回答);
int main()
{
char answer;//为main声明变量
coutunsigned char name;
看起来不正确。请选择char name[MAX_LENGTH];
或std::string name;
发生了什么
cin >> name; // Read just first character
cin >> dob; // Try to read number, where rest of the name is left in the stream buffer
除非名称的宽度为1个字母,否则这看起来肯定是错误的。问题可能是:
cin >> name;
您正在输入名称,但将其存储在name
中,这只是无符号字符
。请使用更大的数组来存储名称。如果变量name可以包含多个字符,您不能声明它无符号字符,您可以声明它std::string。记住
#include<string>
#包括
我目前没有设置调试器,因为我正处于C++@Joshmarl的早期阶段,您首先输入什么?如果您既不输入“y”也不输入“n”,程序将退出。您正试图将名称存储在char
变量中。您可能需要一个字符数组来代替。@Joshmarl在编写co之前应该先有一个调试器D.我不能玩得足够多,你需要一个调试器,并且知道如何调试.@ JojHyMARSURE,如果你是C++,你不需要一个完全成熟的调试器来调试代码.在你的例子中,简单地检查CIN >名称中存储的值就足以捕捉你的bug .这是最容易通过打印变量“名称”来完成的.使用cout Thankyou到控制台-这解决了我一直遇到的问题,使用字符串比使用char[MAX_LENGTH]更好吗?@JoshMarshall是的,这当然是为了。