【发布时间】:2019-08-22 04:04:58
【问题描述】:
我不知道为什么它会停在那里并以退出代码 11 结束。它应该一直运行到我发出命令为止。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void record(string name, string phoneNum, int count);
// main
int main() {
cout << " Welcome to use the Phone Contact Systerm " << endl;
string name;
string phoneNum;
int count = 0;
string signToStop;
cout << " Please enter name and phone number " << endl;
while ( cin >> name >> phoneNum){
cout << " If you want to start the program, enter start " << endl;
cout << " If you want to quit the program, enter quit " << endl;
cin >> signToStop;
if (signToStop == "start"){
record(name, phoneNum, count);
cout << " Please enter name and phone number " << endl;
}
else if ( signToStop == "quit" ){
break;
}
cout << count << endl;
count++;
}
}
// record all name info into Name set and record all phone numbers into PhoneNum set
void record(string name, string phoneNum, int count){
string Name[] = {};
string PhoneNum[] = {};
Name[count] = {name};
PhoneNum[count] = {phoneNum};
// now start to record all the info into .txt document
ofstream phoneFile;
phoneFile.open("contact.txt");
phoneFile << name << " " << phoneNum << endl;
}
结果是:
Welcome to use the Phone Contact Systerm
Please enter name and phone number
Molly 5307609829
If you want to start the program, enter start
If you want to quit the program, enter quit
start
Please enter name and phone number
0
Lilyi 44080809829
If you want to start the program, enter start
If you want to quit the program, enter quit
start
Process finished with exit code 11
【问题讨论】:
-
您的
record()函数没有为其本地数组分配足够的(即任何)内存,因此访问这些数组的任何元素都会越界并导致未定义的行为。该函数到底想做什么?