给出姓名和电话号码,组装一个电话簿,将朋友的姓名映射到他们各自的电话号码。然后,将为您提供未知数量的名称,以查询电话簿。对于所查询的每个名称,将电话簿中的相关条目以“名称= phoneNumber”的形式换行打印;如果找不到名称条目,则打印“找不到”。
输入格式:...
在电话簿条目行之后,存在未知数量的查询行。每行(查询)包含一个要查找的内容,以及
您必须继续阅读各行,直到没有更多输入为止。
在没有更多输入之前,如何循环播放?
有人还能告诉我在C ++中怎么做到吗?
这是我在Python 3中的代码:
n = int(input())
names = {}
for foo in range(n):
entry = input().split(' ')
names[entry[0]] = entry[1]
while (1==1):
check = input()
if(names.get(check)!=None):
print(check + '=' + names.get(check))
else:
print('Not Found')
这是C ++代码:
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(void)
{
map<string, string> phonebook;
int n;
cin >> n;
string key, num;
for(int i = 0; i < n; i++)
{
cin >> key >> num;
phonebook.insert(pair<string, string>(key, num));
}
while (1 == 1)
{
cin >> key;
if(phonebook.count(key) > 0)
cout << key << "=" << phonebook[key] << endl;
else
cout << "Not found" << endl;
}
}
答案 0 :(得分:2)
在没有更多输入之前,如何循环播放?
您可以使用while循环。要捕获并消除错误,可以使用model.py
块:
try-except
有人还能告诉我在C ++中怎么做到吗?
嗯...奇怪的要求。我将把您指向std::getline
和std::map
,然后让他们进行交谈。 :-)
答案 1 :(得分:0)
这是正确的C ++代码:
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(void)
{
map<string, string> phonebook;
int n;
cin >> n;
string key, num;
for(int i = 0; i < n; i++)
{
cin >> key >> num;
phonebook.insert(pair<string, string>(key, num));
}
getline(cin, key);
while(getline(cin, key)) //Loop runs while we are getting input.
{
if(phonebook.count(key) > 0)
cout << key << "=" << phonebook[key] << endl;
else
cout << "Not found" << endl;
}
}