我尝试制作电话Sys,并且在main {}中使用了while循环。我不知道为什么它只能运行一次,除非我给它停止命令,否则它应该运行无限次。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void record(string name, int phoneNum, int count);
// main
int main() {
cout << " Welcome to use the Phone Contact Systerm " << endl;
string name;
int 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);
}
else if ( signToStop == "quit" ){
break;
}
count++;
}
}
// record all name info into Name set and record all phone numbers into PhoneNum set
void record(string name, int phoneNum, int count){
string Name[] = {};
int 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 5307659229
Process finished with exit code 0
答案 0 :(得分:2)
也许尝试用ulong int作为电话号码,可能太长了。我还可能会补充一点,我有点困惑,因为您的函数record()具有第三个参数,该参数没有默认参数。您的问题可能也在那里。与没有默认值一样,您需要在使用参数时将其放入。
答案 1 :(得分:2)
正如频谱所说,电话号码实际上不是整数,因此从编程(甚至是数学)的角度来说,它也不是“数字”。
它更像是一个数字序列;即是一个字符串。
当您尝试将其解释为int
时遇到两个问题:
int
类型对于该值而言太小(这是导致循环结束的原因)相反,我将其读取为字符串。以后您仍然可以验证它,例如“每个字符都是数字吗?”。