c++从用户处获取输入并执行命令



我们有三个文本文件命名为:henry.txt adam.txt josh.txt

我们要打开这些文本文件,读取其中的内容,并将文本文件中包含的整数存储到一个数组中。

因此,例如henry.txt包含整数:100, 200, 300, 400, 500都在不同的行。

现在,对于从用户那里获取输入,我们假设用户类型:Start Henry

这将读取文本文件,并将每行的整数存储到一个数组中。

然后用户可以输入:Select k,这将打印出数组中的第k项。或者用户可以输入Select max,它将打印数组中的最后一个元素。

最后是用户类型:End henry这将关闭文件并释放所有动态分配的内存。

我已经知道如何编写代码来获取文本文件中的整数并将它们存储到数组中,等等。

我感到困惑的是我将如何实现Start henry Select kEnd henry等事情。

对于Start henry,我尝试使用std::string::find来检查单词"开始"是否包含在存储用户输入的字符串中。如果找到"Start",则调用Start()函数。从这里,它再次检查用户输入的输入中是否包含诸如henry、josh或adam之类的单词。如果找到其中一个单词,则打开与该名称关联的文本文件,并将整数存储到一个数组中。

现在我不知道是否有更好的方法来做这件事,但如果有,请解释给我听。

我真正的问题是当用户输入Select k时。我尝试实现与Start相同的方法,但我不知道如何检查是否输入了数组中的某个元素,或者是否输入了max

当您检查命令的前六个字母是否为"Select"时,您可以使用substr()方法返回用户写入的数字,如下所示:

std::string numAsString = command.substr(7);

请记住,如果用户写"Select 123 "(末尾有一个空格),字符串numAsString也会有一个空格!

下一步是将字符串解析为整数,您可以使用atoi(说实话,我想不出另一种方法,可能必须有一种…)。我的想法是:

int num = atoi(numAsString.c_str());

然后将其与数组的长度和…

相关内容

  • 没有找到相关文章

最新更新