【发布时间】:2020-03-12 10:39:24
【问题描述】:
我正在尝试从文件中读取并检查文件中的单词,使用 if 语句,如果文件中有单词,我希望它输出某个文本。
我不太确定我做错了什么,有人可以启发我吗?请帮助而不是称我为白痴或其他什么。我想学,我是C++和编程菜鸟。
这是到目前为止文件文本中的逐行内容:
女8D
男7E
男8D
女7B
void fourCoats()
{
string word;
ifstream horseList;
horseList.open("horseList.txt");
if (!horseList.is_open())
{
cout << "Unable to open file...";
exit(1);
}
while (horseList >> word)
{
if (word == "Male8D") {
while (horseList >> word) {
if (word == "Female7B") {
cout << "You have Male8D and Female7B.\n";
break;
}
}
}
else if (word == "Female8D") {
while (horseList >> word) {
if (word == "Male7B") {
cout << "You have Female8D and Male7B.\n";
break;
}
}
}
else if (word == "Male8D") {
while (horseList >> word) {
if (word == "Female7C") {
cout << "You have Male8D and Female7C.\n";
break;
}
}
}
else if (word == "Female8D") {
while (horseList >> word) {
if (word == "Male7C") {
cout << "You have Female8D and Male7C.\n";
break;
}
}
}
else if (word == "Male8D") {
while (horseList >> word) {
if (word == "Female7D") {
cout << "You have Male8D and Female7D.\n";
break;
}
}
}
else if (word == "Female8D") {
while (horseList >> word) {
if (word == "Male7D") {
cout << "You have Female8D and Male7D.\n";
break;
}
}
}
else if (word == "Male8D") {
while (horseList >> word) {
if (word == "Female7E") {
cout << "You have Male8D and Female7E.\n";
break;
}
}
}
else if (word == "Female8D") {
while (horseList >> word) {
if (word == "Male7E") {
cout << "You have Female8D and Male7E.\n";
}
}
}
}
horseList.close();
}
【问题讨论】:
-
我不确定您的目标是什么,您要报告文件中所有不同的单词吗?如果是这种情况,请查看 std::set() 并在阅读时将单词放入一个集合中,然后遍历该集合以报告它们。
-
所以基本上我想看看我是否有像Male8D和Female7E这样的“马”的某种组合,用户输入文本文件以保存他们拥有的马。如果我有 Male8D 和 Female7E,我希望它输出“你有 Male8D 和 Female7E”。如果我有不同的组合,我希望它输出给用户。该程序的重点是首先打印出最好的组合,然后打印出更差的组合,如果你有所需的马组合,甚至只是最好的组合。
标签: c++