Загрузка...

C++

Тема в разделе C/C++ создана пользователем DonCarlleone 9 мар 2018. 616 просмотров

  1. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    Задание:Нужно чтоб после ввода строки из символов программа проверила правильно ли в ней поставлены скобки.
    Что нужно исправить чтоб запустился код,ошибка в 18 строке. Юзаю dev c++
    Код:
    Код
    #include "iostream"
    #include <string>
    #include <stack>

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "Russian");


    string strokaVvoda;
    cout << "Enter a string: ";
    getline(cin, strokaVvoda);
    int last = strokaVvoda.length()-1;
    stack <char> steck;

    for_each (char c in strokaVvoda)
    {
    steck.push(c);
    }
    cout << "Placed in a stack"<<endl;
    while (!steck.empty())
    {
    if ((steck.top() == ')') || (steck.top() == '('))
    if ((steck.top() == '}') || (steck.top() == '{'))
    if ((steck.top() == ']') || (steck.top() == '['))
    {
    cout << "Bracket \"" << steck.top() << "\" is present"<< endl;

    }
    steck.pop();

    }

    cout << "Stack: ";
    while (!steck.empty())
    {

    cout << steck.top();

    steck.pop();

    }
    cout << strokaVvoda<<endl;
    system("pause");
    return 0;
    }
     
  2. jvscrpt
    jvscrpt 9 мар 2018 Уважать вас это себя неуважать 141 5 дек 2017
    В чем собственно проблема?
     
  3. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    for_each (char c in strokaVvoda); выдает ошибку в чём проблема ?
     
  4. renameduser_185993
    А вы синтаксис for_each смотрели? На сколько я понял он работает с итераторами, а у вас кажется булевское значение условие возвращает, но если мы убираем символ "_" становится похоже на правду
     
  5. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    если убери символ "_" то даный код выдает ошибку и без символа _ не будет работать
     
  6. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    но все равно спс я нашёл в чем была проблема
     
  7. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    ты мне вот что скажи если шариш можеш помоч в етом разделе https://zelenka.guru/threads/386460/
     
  8. renameduser_185993
    Ок, но для сверки:
    я исправил
    Код
    #include "stdafx.h"
    #include <iostream>
    и вставил
    Код
    for each(char c  in strokaVvoda)

    и компилятор пропустил
     
  9. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    да да ето я уже заметил при компиляции
     
  10. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    почему при комиляции выдает ошибку " [Error] stdafx.h: No such file or directory"
     
  11. renameduser_185993
    Спасибо, я жавист. Только ради интереса скачал визуал студио)
     
  12. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    может ошибка в том что я компилирую не на вижуале а на dev c++
     
  13. renameduser_185993
    Сорри не разбираюсь, проходит у меня так.
    Код

    гугл рекомендует удалить #include "stdafx.h"

    Вообщем я хрен знает. В Си вообще ничего не понятно, вроде пытаешься так же как на жаве делать, но из за какой то кавычки компилятор матами кроет) уже бы сам исправил
     
  14. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    то добавил вот такое и выдает
     
  15. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    Код

    #include "stdafx.h"
    #include <iostream>
    #include <string>
    #include <stack>

    using namespace std;

    int main()
    {
    // setlocale(LC_ALL, "Russian");

    string strokaVvoda;
    cout << "Enter a string: ";
    getline(cin, strokaVvoda);
    int last = strokaVvoda.length()-1;
    stack <char> steck;

    for_each (char c in strokaVvoda);
    {
    steck.push(c);
    }
    cout << "Placed in a stack"<<endl;
    while (!steck.empty())
    {
    if ((steck.top() == ')') || (steck.top() == '('))
    if ((steck.top() == '}') || (steck.top() == '{'))
    if ((steck.top() == ']') || (steck.top() == '['))
    {
    cout << "Bracket \"" << steck.top() << "\" is present"<< endl;

    }
    steck.pop();

    }

    cout << "Stack: ";
    while (!steck.empty())
    {

    cout << steck.top();

    steck.pop();

    }
    cout << strokaVvoda<<endl;
    system("pause");
    return 0;
    }
     
  16. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    Нужно чтоб после ввода строки из символов программа проверила правильно ли в ней поставлены скобки нужно юзать stack
     
  17. DonCarlleone
    DonCarlleone Автор темы 9 мар 2018 Заблокирован(а) 172 22 сен 2016
    ну да беда )
     
  18. renameduser_185993

    Если смотреть for_each( InputIt first, InputIt last, UnaryFunction f ); https://msdn.microsoft.com/ru-ru/library/e5sk9w9k.aspx
    то условие которое он вписал, не подходит по синтаксису
     
  19. renameduser_185993
    Смотри #include <Windows.h> и for each(char c in strokaVvoda) и прошло
    Код

    #include "stdafx.h"
    #include <iostream>
    #include <Windows.h>
    #include <string>
    #include <stack>

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "Russian");

    string strokaVvoda;
    cout << "Enter a string: ";
    getline(cin, strokaVvoda);
    int last = strokaVvoda.length() - 1;
    stack <char> steck;

    for each(char c in strokaVvoda)
    {
    steck.push(c);
    }
    cout << "Placed in a stack" << endl;
    while (!steck.empty())
    {
    if ((steck.top() == ')') || (steck.top() == '('))
    if ((steck.top() == '}') || (steck.top() == '{'))
    if ((steck.top() == ']') || (steck.top() == '['))
    {
    cout << "Bracket \"" << steck.top() << "\" is present" << endl;

    }
    steck.pop();

    }

    cout << "Stack: ";
    while (!steck.empty())
    {

    cout << steck.top();

    steck.pop();

    }
    cout << strokaVvoda << endl;
    system("pause");
    return 0;
    }
     
Загрузка...
Top