Ошибка: 's' не называет тип

0

Это ошибка, которую мне дает код, и я не могу понять, почему. В нем говорится, что ошибка возникает во второй или последней строке или в конце функции introStory. (Я пишу это в скобках прямо сейчас, потому что сказано, что мой пост - это в основном код, и мне нужно добавить больше деталей.)

#include <iostream>
#include <string>
#include "windows.h"
using namespace std;

string classChooser();
string nameChooser();
void introStory(string position, string name);

int main()
{
    string charPosition = classChooser();
    cout << "You chose " << charPosition << " as your class.";
    string charName = nameChooser();
    introStory(charPosition,charName);

    return 0;
}

string classChooser()
{

    string position;
    while(true)
    {
        cout << "Choose a class wisely... \n\n";
        cout << "\tWarrior: \n\t  Health:75\n\t  Attack:25\n\n";
        cout << "\tWizard: \n\t  Health:25\n\t  Attack:75\n\n";
        cout << "\tRogue: \n\t  Health:50\n\t  Attack:50\n";

        cout << "\nWhich class do you want to select? : ";
        cin >> position;
        if(position == "wizard" ||position ==  "warrior" ||position ==  "rogue" ||position ==  "Wizard" ||position ==  "Warrior" ||position ==  "Rogue")
        {
            system("cls");
            return position;
        }
        else
        {
            cout << "\n\nMake sure you typed in the word correctly, and used appropriate capitalization.";
            Sleep(3200);
            system("cls");
            continue;
        }
    }
}

string nameChooser()
{
    string name;
    cout << "\nPlease choose a name for your hero: ";
    cin >> name;
    cout << "\nYour name is now " << name;
    return name;
}
void introStory(string position, string name)
{
    cout << "\nLet the story begin...";
    Sleep(2100);
    system("cls");
    cout << "Once upon a time in a poor village, a young kid named " << name << " was digging a hole.";
    Sleep(4000);
    cout << "After digging for a couple hours he came across a chest.";
    Sleep(3200);
    string weapon;
    if(position == "Warrior" || position == "warrior")
        weapon = "sword";
    else if(position == "Wizard" || position == "wizard")
        weapon = "wand";
    else
        weapon = "dagger";
    cout << "When he opened it, he found a " << weapon;
    Sleep(2000);
    cout << "That was exactly what he had been wanting for the past couple of months.";
    Sleep(3000);
    cout << "You see, " << name << " wanted to be a " << position;
    Sleep(2700);
    cout << "So a " << weapon << " was the perfect choice.";
    Sleep(2100);
    cout << "With his new " << weapon << " he could finally explore the dark cave his father was lossed in.";
    Sleep(4000);
    cout << "He could slay the monsters in there everyone was so terrified of.";
    Sleep(3200);
    cout << "He headed toward the cave.";
    Sleep(2000);
}
  • 0
    Оставьте меньше кода, который воспроизводит ошибку.
  • 3
    Не воспроизводится .
Показать ещё 3 комментария
Теги:

1 ответ

0

Этот код, введенный точно так же, как в MSVC++ Express 2010 (приложение Win32 Console, без прекомпилированных заголовков), отлично работает.

Поэтому я подозреваю, что у вас есть проблема в другом месте (другой код в вашем проекте, поврежденные файлы заголовков, множество других возможностей), или вы не отправили код, вызывающий проблему.

's' does not name a type ошибку 's' does not name a type обычно появляется, когда вы используете s где ожидается имя типа. Это не тот код, который вы указали.


Кстати, если вы не используете компиляторы Microsoft для кода Windows, вам нужно указать это. Может быть, подобные MinGW и др. Не так хорошо интегрированы, как Visual C++.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню