我的程序从电话的文件数据库中读取数据,这部分代码应该从文件中打印出一些电话号码(以及其他信息),但仅打印以指定前缀开头的电话号码。我无法弄清楚如何确定哪些呼叫具有正确的前缀,而仅打印那些。
我尝试使用string.find(prefix),但不起作用。
while (1) {
cout<< "\nE164 prefix for query:"<< endl;
cin >> prefix;
if (prefix== "\n" || prefix== "-1") {
break;
}
if (numCalls== 0) {
cout<< "No Records\n";
}
else {
cout<< "Time Country Phone Number Duration\n";
for (unsigned int i=0; i< numCalls; ++i) {
if (call.phonenum.find(prefix)!= string::npos) {
GetCallInCallDB( calldb, i, call);
cout<< left<< setw(10) << GetStartCall(call);
cout<< left<< setw(9)<< GetCountryCodeCall(call);
cout<< left<< setw(16)<< GetPhoneNumberCall(call);
cout<< FormatDuration(call)<< endl;
}
}
}
}
if语句有效,但是else语句仅输出标头和随机的(尽管格式正确)电话文件。