我想做一个 公司要求的 输入一段数字 然后获得数字对应的问题 一直循环下去 输入几个关键数字就出现那个关键数字对应的文字 想问一下各位我该怎么做呢 最好是有模板谢谢了
好的,下面是一个模板供您参考:
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main() {
// 初始化关键数字和对应文字的映射表
map<int, string> keyWords = {
{1, "这是问题1的答案。"},
{2, "这是问题2的答案。"},
{3, "这是问题3的答案。"}
};
int input;
while (true) {
// 提示用户输入关键数字
cout << "请输入关键数字(输入0退出程序):";
cin >> input;
// 判断用户输入是否为0,如果是则退出循环
if (input == 0) {
break;
}
// 查找关键数字对应的文字并输出
if (keyWords.find(input) != keyWords.end()) {
cout << keyWords[input] << endl;
} else {
cout << "没有找到对应的问题,请重新输入。" << endl;
}
}
return 0;
}
解释:
map
定义了一个关键数字和对应文字的映射表 keyWords
,其中 1
对应 "这是问题1的答案。"
,2
对应 "这是问题2的答案。"
,3
对应 "这是问题3的答案。"
。input
中。input
是否为 0
,如果是则退出循环。keyWords
中查找 input
对应的文字,如果找到则输出,如果没有找到则输出提示信息。以下是一个C++程序,它从用户那里接收一个数字,并打印与该数字对应的文本。程序会一直循环,直到用户选择退出:
Copy code
#include <iostream>
using namespace std;
int main() {
int num;
while (true) {
cout << "请输入数字(输入0退出程序):" << endl;
cin >> num;
switch (num) {
case 1:
cout << "打印文本1" << endl;
break;
case 2:
cout << "打印文本2" << endl;
break;
case 3:
cout << "打印文本3" << endl;
break;
case 4:
cout << "打印文本4" << endl;
break;
case 5:
cout << "打印文本5" << endl;
break;
case 6:
cout << "打印文本6" << endl;
break;
case 7:
cout << "打印文本7" << endl;
break;
case 8:
cout << "打印文本8" << endl;
break;
case 9:
cout << "打印文本9" << endl;
break;
case 0:
cout << "程序已退出" << endl;
return 0;
default:
cout << "输入的数字无效,请重新输入" << endl;
break;
}
}
return 0;
}
注意,这个程序假设输入的数字介于0和9之间(包括0和9)。如果需要处理更多的数字,可以添加更多的case语句。
你这不就是要查字典么?先得创建字典,再输入key搜索。一段数字是个整型的话,定义一个map就行
该回答引用GPTᴼᴾᴱᴺᴬᴵ
你可以使用C++的 switch 语句和 while 循环来实现这个功能。以下是一个简单的示例代码,它可以接受用户输入关键数字,并打印相应的文本,直到用户输入“exit”为止:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int input;
string text;
while (true) {
cout << "请输入关键数字(输入0退出):";
cin >> input;
switch (input) {
case 1:
text = "问题1的答案。";
break;
case 2:
text = "问题2的答案。";
break;
case 3:
text = "问题3的答案。";
break;
case 4:
text = "问题4的答案。";
break;
case 5:
text = "问题5的答案。";
break;
case 0:
cout << "退出程序。\n";
return 0;
default:
text = "无效的输入,请重新输入。";
break;
}
cout << text << endl;
}
return 0;
}
在上面的代码中,我们首先定义了变量 input 用于存储用户输入的数字,变量 text 用于存储关键数字对应的文本。接下来,我们使用一个无限循环来接受用户的输入,直到用户输入了 0,表示要退出程序。
·
在每次循环中,我们使用 switch 语句来根据用户输入的数字选择相应的文本。如果用户输入的数字没有匹配到任何一个 case,我们会将 text 设置为一个默认的无效输入提示。
·
最后,我们将 text 打印到屏幕上,并开始下一轮循环。
我画...的部分你可以自己修改,望采纳(这是模板,需按照自己需求改)
#include <iostream>
using namespace std;
int main() {
int num;
while (true) {
cout << "请输入数字(输入0退出程序):" << endl;
cin >> num;
switch (num) {
case 1:
cout <<...;
break;
case 2:
cout << ...;
break;
case 3:
cout << ...;
break;
case 4:
cout << ...;
break;
case 5:
cout << ...;
break;
case 6:
cout << ...;
break;
case 7:
cout << ...;
break;
case 8:
cout << ...;
break;
case 9:
cout << ...;
break;
...
...
...
case n:
cout << ...;
break;
case 0:
cout << "退出";
return 0;
default:
cout << "输入有误,请重新输入" << endl;
break;
}
}
return 0;
}
参考GPT和自己的思路:以下是一个基本的 C++ 程序,该程序会循环读取用户输入的数字,根据输入的数字输出相应的问题,直到用户输入特定的关键数字以退出程序。你可以根据需求进行修改:
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
struct Problem {
string question;
string answer;
};
int main() {
// 读取大型数据库并存储到哈希表中
unordered_map<int, Problem> db = {
{1, {"问题1", "答案1"}},
{2, {"问题2", "答案2"}},
{3, {"问题3", "答案3"}},
// ...
};
// 遍历哈希表并输出问题和答案
for (const auto& entry : db) {
cout << entry.second.question << endl;
cout << entry.second.answer << endl;
}
return 0;
}
在这个程序中,我们使用一个循环遍历哈希表中的所有问题,并输出问题和答案。在循环结束后,程序就会直接退出。请注意,这种做法不需要等待用户输入,而是直接按照数据顺序输出问题和答案。如果您需要按照特定顺序输出问题和答案,可以在哈希表中存储一个排序字段,并在循环中按照该字段排序后输出。
以下是一个示例程序,可以实现您所需的功能。它使用一个无限循环,每次从标准输入读取一个数字,然后打印对应的问题。如果用户输入特定的退出命令,程序将退出循环并结束。
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<int, std::string> question_map = {
{1, "What is your name?"},
{2, "Where are you from?"},
{3, "What is your favorite color?"},
{4, "What do you like to do for fun?"},
};
std::string exit_command = "exit";
std::string input;
int key;
while (true) {
std::cout << "Please enter a key number or type 'exit' to quit: ";
std::cin >> input;
if (input == exit_command) {
break;
}
try {
key = std::stoi(input);
if (question_map.find(key) != question_map.end()) {
std::cout << question_map[key] << std::endl;
} else {
std::cout << "Invalid key number, please try again." << std::endl;
}
} catch (std::exception const& e) {
std::cout << "Invalid input, please try again." << std::endl;
}
}
return 0;
}
该程序使用了一个 std::map 对象来存储每个数字对应的问题。在程序启动时,我们创建了一个 question_map 对象,并为每个数字关联了一个字符串。
然后,我们进入一个无限循环,每次提示用户输入一个数字。如果用户输入的是退出命令,我们就通过 break 语句退出循环,否则我们将输入解析为整数并在 question_map 中查找对应的问题字符串。如果找到了相应的字符串,我们就打印它;否则,我们就提示用户输入一个有效的数字。
请注意,我们使用了 try 和 catch 语句来捕获输入无效或数字不在 question_map 中的情况,并向用户发出相应的提示。
解答如下
#include <iostream>
using namespace std;
string c[9]= {"打印文本1","打印文本2","打印文本3","打印文本4","打印文本5","打印文本6","打印文本7","打印文本8","打印文本9"};
int main()
{
int num;
while (true)
{
cout << "请输入数字(输入0退出程序):" << endl;
cin >> num;
cout<<c[num-1]<<endl;
if(num==0||num>9||num<0)
break;
}
return 0;
}
定义一个数据结构,成员有,key也就是你说的数字,还有问题描述;然后定义一个这struct的数组;
这样,每次输入后解析后,在这个数组里查询一下,有的话就输出对应的问题。
。。。