Пишу словарь цитат,запутался в своём коде)помогите пожалуйста!

Недавно начал создавать словарик цитат и запутался в своём же коде!из за этого программа работает некорректно.Помогите найти ошибку в коде

#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");

    int vibor;
    int person;
    int backend,backend1;

    char* Torvalds = "Большинство хороших программистов делают свою работу не потому,что ожидают оплаты или признания,а потому что получают от этого удовольствие.";
    char* Torvalds1 = "Microsoft - не зло,просто у них по-настоящему паршивые операционные системы!";
    char* Torvalds2 = "Болтовня ничего не стоит. Покажите мне код.";
    char* Biern = "Язык С позволяет выстрелить себе в ногу. С С++ это сделать сложнее, но эсли вам это удастся, вы лишитесь всей ноги разом.";

    cout << "Добро пожаловать в универсальный цитатник!\n";

    back:

    cout << "Выберите тему цитат:\n";
    cout << " 1.Программирование\n>>> ";
    cin >> vibor;

    if(vibor == 1){
      system("cls");
      cout << "Выберите человека:\n ";
      cout << "1.Линус Торвальдс\n 2.Бьёрн Страуструп\n";
      cin >> person;

        if(person == 1){
          cout << "1." << Torvalds << "\n\n";
          cout << "2." << Torvalds1 << "\n";
          cout << "Смотреть других? (1 или 0) ";
          cin >> backend;

             if(backend == 1){
                    system("cls");
                    goto back;}

             else if(backend == 0){
                    goto end;}}


        else if(person == 2){
            cout << "1." << Biern << "\n";
            cout << "Смотреть других? (1 или 0) ";}
            cin >> backend1;
                if(backend1 == 1){
                    system("cls");
                    goto back;}

                else if(backend1 == 0){
                    system("cls");
                    goto end;}
            }}

    else if(vibor == 2){
        system("cls");
        goto end;}

    end:
    cout << "Спасибо за использование нашего цитатника!\n";

    system("pause");
    return 0;
}

Я новичок,поэтому не судите строго читабельность и логичность кода,но нужно же пробовать)

Намудрил ты просто с фигурными скобками («{}» с вот этими), а так весь код правильный ;)

#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL,"Russian");

int vibor;
int person;
int backend,backend1;

char* Torvalds = "Большинство хороших программистов делают свою работу не потому,что ожидают оплаты или признания,а потому что получают от этого удовольствие.";
char* Torvalds1 = "Microsoft - не зло,просто у них по-настоящему паршивые операционные системы!";
char* Torvalds2 = "Болтовня ничего не стоит. Покажите мне код.";
char* Biern = "Язык С позволяет выстрелить себе в ногу. С С++ это сделать сложнее, но эсли вам это удастся, вы лишитесь всей ноги разом.";

cout << "Добро пожаловать в универсальный цитатник!\n";

back:

cout << "Выберите тему цитат:\n";
cout << " 1.Программирование\n>>> ";
cin >> vibor;

if(vibor == 1){
  system("cls");
  cout << "Выберите человека:\n ";
  cout << "1.Линус Торвальдс\n 2.Бьёрн Страуструп\n";
  cin >> person;

    if(person == 1){
      cout << "1." << Torvalds << "\n\n";
      cout << "2." << Torvalds1 << "\n";
      cout << "Смотреть других? (1 или 0) ";
      cin >> backend;

         if(backend == 1){
                system("cls");
                goto back;}

         if(backend == 0){
                goto end;}
                }



   if(person == 2){
        cout << "1." << Biern << "\n";
        cout << "Смотреть других? (1 или 0) ";
        cin >> backend1;

            if(backend1 == 1){
                system("cls");
                goto back;}

            if(backend1 == 0){
                system("cls");
                goto end;}
        }

   }
if(vibor == 2){
    system("cls");
    goto end;}


end:
cout << "Спасибо за использование нашего цитатника!\n";
system("pause");
return 0;

}

Permission denied
ld returned 1 exit status
Выдаёт эти ошибки при компиляции(( что это значит?

даже не знаю. Может скопировал криво?
просто у меня все работает.
в VS работаешь?

Кстати там после кода, который я скинул, выделенный
вот так
есть еще
}
вставь ее в код, может быть из-за этого.

Кстати там после кода, который я скинул, выделенный

вот так

есть еще
}
вставь ее в код, может быть из-за этого.

Немного времени спустя попробовал ещё и заработало-Спасибо!!

Я бы посоветовал подгружать цитаты, если уж не из СУБД, то хотя бы из текстовых файлов (одного или нескольких).

Череп,я бы так и сделал,если бы меня научили...

Слава новичок, страдательный залог — не лучшая позиция. Учись! Книги есть, интернет есть, компьютер, как я понимаю, тоже есть. Что ещё надо?

Я тут что-то порылся, и нечего внятного не нашёл.О С++ там вообще не упоминалось.Если тебе не сложно,можешь пожалуйста что-нибудь подкинуть или сайт подсказать.Буду ОЧЕНЬ благодарен.(Если честно,я вообще ничего не понял из того,что смотрел :( )

может пока мне в это вообще не лезть?

Если «не лезть», то и будешь всю жизнь там... внизу.

Прямых ссылок на ресурсы не дам — не хочу подставлять сайт под антипиратские законы. Погугли по следующим фразам:

Шилдт с++
Шилдт Г. — Полный справочник по C++
книги C++
книги с++ Страуструп
Дейтел Как программировать на C++
Николай Джосьютис C++ Стандартная библиотека

В сети есть книги в PDF, DJVU и более экзотических форматах.

может пока мне в это вообще не лезть?

Учитесь и не плачьте :-) Если интерес есть, значит со временем все получится.

Пример со считыванием фраз из файла. Каждая фраза начинается с новой строки.

#include <iostream>
#include <string>
#include <vector>
#include <fstream>

using namespace std;

int main(int argc, char* argv[])
{
    const char filename[] = "quotes.txt";
    vector<string> quote_list;
    string buf;

    // Записываем цитаты построчно в массив
    // из файла
    ifstream fs(filename);
    while (!fs.eof()) {
        getline(fs, buf);
        quote_list.push_back(buf);
    }
    fs.close();

    int user_input; // ввод номера цитаты пользователем
    unsigned int quote_count = quote_list.size();

    cout << "Count of quotes: " << quote_count << endl;
    cout << "Enter the number (0 to " << quote_count - 1 << ")" << endl;
    cout << "Enter -1 for exit\n" << endl;

    // вывод цитаты с соотвествующим номером или выход из программы
    do {
        cin >> user_input;
        if (user_input == -1) {
            cout << "Exit" << endl;
        } else if (user_input < 0 || user_input > (quote_count - 1)) {
            cerr << "Error: value ot of range" << endl;
        } else {
            cout << quote_list.at(user_input) << endl;
        }
        cin.clear();
    } while (user_input != -1);

    return 0;
}

может пока мне в это вообще не лезть?

Дерзай и не сдавайся!!! Развивай свои таланты. Быстрее всего человек может научится ложку ко рту подносить, только кто это назовет талантом :)

Я тут на досуге попробовал (с подачи Черепа) набросать цитатник с чтением цитат из файла. Довольно мудрёная штучка получилась %-0

Правда я несколько расширил возможности цитатника — грех было не воспользоваться возможностями формата входного файла, который мне взбрёл в голову ))

И еще, я постарался по возможности не использовать STL (только для ввода-вывода). Решил поставить себя на уровень новичка и использовать только базовые возможности С++. До конца это сделать не удалось — использовал таки классы ))) Но по минимуму и на базовом уровне ))

Скачать архив можно здесь. Будет жить 14 дней, потом протухнет.

В архиве исходник с комментариями, exe'шник для Винды, файл с цитатами. При запуске цитаты и exe'шник должны лежать в одном каталоге. Исходник делался для Visual Studio 2012. Для Dev-C++ надо сделать кое-какие правки (минимальные).

Это, так сказать, draft, прототип. Защита от ошибок — минимальная. Просьба камнями не кидать. Но конструктивная критика приветствуется.

Алан,скачал,посмотрел,у меня взорвался мозг...

Слава, ты мозг аккуратненько соскреби со стен и сложи куда-нибудь в баночку — он тебе еще понадобится ))))

А на счет кода, я сразу предупредил, что получилось своеобразненько. Но, если уж скачал, попробуй разобраться в коде. Там есть интересные для новичка моменты: работа с указателями и рекурсивные функции обхода дерева (обычно эти темы при изучении вызывают затруднения).

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

А вообще вариантов проектирования такой программы много. Зависит от начальных условий и ограничений. В данном случае ты волен установить сам и начальные условия и ограничения. Значит уже проще ))

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.