Cout 不是 STD 的成员,以及有关 C++ 的其他问题

cout is not a member of std, and other issues regarding c++

本文关键字:C++ 其他 问题 不是 STD 成员 Cout      更新时间:2023-10-16

请允许我先说我确实包含了(也适用于字符串,endl,而且字面上一切都不起作用); 就语法而言,我的 IDE 没有显示任何错误; 我不明白为什么会发生这个问题?它在我编写的其他C++代码示例中运行良好。

所以我正在尝试做一个小游戏,公牛和奶牛。我的主代码如下所示:

#include <iostream>
#include "stdafx.h"
#include "BullsAndCows.h"

using std::cout;
using std::endl;
using std::cin;
using std::string;
int main()
{
string userInput = "";
bool playAgain = false;
int gameDiff;
constexpr char * GREETING = "Welcome to Bulls and Cows! Please enter the difficulty level: (1) Easy, (2) Medium, (3) Hard";
cin >> gameDiff;
do
{
BullsAndCows *bc = new BullsAndCows();
bc->playGame(gameDiff);
} while (playAgain);

constexpr char * INFORMATION = "Total Word Length  is: ";
//Introduce the game.
cout << GREETING <<endl;
return 0;
}

我的标题:

#ifndef BULLSANDCOWS_H
#define BULLSANDCOWS_H

class BullsAndCows {
public:

void playGame(int gameDiff);

};
#endif

最后,我的BullsAndCows.cpp文件:

#include <iostream>
#include <string>
#include "stdafx.h"
#include "BullsAndCows.h"
using std::cout;
using std::endl;
using std::cin;
using std::string;
void BullsAndCows::playGame(int gameDiff) {
string wordGuess = "";
string secretWord = "";
int numBulls = 0;
int numCows = 0;
int numGuesses = 0;
switch (gameDiff)
{
case 1: {
numGuesses = 30;
secretWord = "Hello";
for (int i = 0; i < 30; i++) {
numBulls = 0;
numCows = 0;
cout << "Word Length to Guess Is Five, you have " << numGuesses << " guesses remaining" << endl;
cout << "Enter your word guess";
cin >> wordGuess;
for (int j = 0; j < wordGuess.length; j++) {
if (wordGuess.at(j) == secretWord.at(j)) {
numBulls++;
}
else if (secretWord.find(wordGuess.at(j)) != -1) {
numCows++;
}
}
cout << "Bulls: " << numBulls << endl;
cout << "Cows: " << numCows << endl;
if (numBulls == secretWord.length) {
cout << "YOU WIN!" << endl;
break;
}
}
break;
}
case 2:
numGuesses = 20;
break;
case 3:
numGuesses = 10;
break;
}
}

我得到的错误是"cout 不是 std 的成员",cout 符号不能在 using 声明中使用。在此之前,我使用"使用命名空间 std",这将返回诸如"BullsAndCows"不是命名空间或类之类的错误(如果它不是类,那么我一定是火星人)。还有关于用户输入之前缺少";"的东西,例如在我的主.cpp代码中;这是没有意义的,因为没有什么遗漏的。我正在使用VS2017。为什么C++这么烦人的语言

放置指令

#include "stdafx.h"

在任何其他包含指令之前。

相关文章: