[英]How to run a program until user keeps giving input?
給定名字和電話號碼,組裝電話簿,將朋友的名字映射到他們各自的電話號碼。 然后,將為您提供未知數量的名稱,以查詢電話簿。 對於所查詢的每個名稱,將電話簿中的相關條目以“名稱= 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;
}
}
在沒有更多輸入之前,應如何循環播放?
您可以使用while循環。 要捕獲並消除錯誤,可以使用try-except
塊:
n = int(input())
names = {}
for foo in range(n):
entry = input().split(' ')
names[entry[0]] = entry[1]
while True: # (1 == 1) == True
try:
check = input()
except EOFError: # catch the error
break # exit the loop
if(names.get(check)!=None):
print(check + '=' + names.get(check))
else:
print('Not Found')
也有人可以告訴我在C ++中這怎么可能嗎?
嗯...奇怪的要求。 我將把您指向std::getline
和std::map
然后讓他們進行交談。 :-)
這是正確的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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.