Загрузка...

C++

Thread in C/C++ created by DonCarlleone Mar 9, 2018. 624 views

  1. DonCarlleone
    DonCarlleone Topic starter Mar 9, 2018 Banned 172 Sep 22, 2016
    Задание:Нужно чтоб после ввода строки из символов программа проверила правильно ли в ней поставлены скобки.
    Что нужно исправить чтоб запустился код,ошибка в 18 строке. Юзаю dev c++
    Код:
    Code
    #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 Mar 9, 2018 Уважать вас это себя неуважать 141 Dec 5, 2017
    В чем собственно проблема?
     
  3. DonCarlleone
    DonCarlleone Topic starter Mar 9, 2018 Banned 172 Sep 22, 2016
    for_each (char c in strokaVvoda); выдает ошибку в чём проблема ?
     
  4. renameduser_185993
    А вы синтаксис for_each смотрели? На сколько я понял он работает с итераторами, а у вас кажется булевское значение условие возвращает, но если мы убираем символ "_" становится похоже на правду
     
  5. DonCarlleone
    DonCarlleone Topic starter Mar 9, 2018 Banned 172 Sep 22, 2016
    если убери символ "_" то даный код выдает ошибку и без символа _ не будет работать
     
  6. DonCarlleone
    DonCarlleone Topic starter Mar 9, 2018 Banned 172 Sep 22, 2016
    но все равно спс я нашёл в чем была проблема
     
  7. DonCarlleone
    DonCarlleone Topic starter Mar 9, 2018 Banned 172 Sep 22, 2016
    ты мне вот что скажи если шариш можеш помоч в етом разделе https://zelenka.guru/threads/386460/
     
  8. renameduser_185993
    Ок, но для сверки:
    я исправил
    Code
    #include "stdafx.h"
    #include <iostream>
    и вставил
    Code
    for each(char c  in strokaVvoda)

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

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

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

    #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 Topic starter Mar 9, 2018 Banned 172 Sep 22, 2016
    Нужно чтоб после ввода строки из символов программа проверила правильно ли в ней поставлены скобки нужно юзать stack
     
  17. DonCarlleone
    DonCarlleone Topic starter Mar 9, 2018 Banned 172 Sep 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) и прошло
    Code

    #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;
    }
     
Loading...
Top