Ребят, привет! Пишу текстовый квест на С++ с библиотекой Qt, сам каркас и функционал почти готовы, а вопрос в следующем: Как мне реализовать подгрузку текстов из стороннего файла? Не хочу впихивать большие абзацы текста в код, не красиво, да и не практично наверное, хотелось бы сделать по уму. Как это вообще обычно делается и при помощи чего? Ну и рад буду если на коде покажите или дадите линк.
Пишу текстовый квест на С++ с библиотекой Qt, сам каркас и функционал почти готовы, а вопрос в следующем: Как мне реализовать подгрузку текстов из стороннего файла? Не хочу впихивать большие абзацы текста в код, не красиво, да и не практично наверное, хотелось бы сделать по уму.
Ты можешь сделать ещё один файл, в котором будут содержаться номера меток. Потом, исходя из логики твоей программы, можно будет искать метку в файле, который содержит сам текст. Профит тут ещё в том, что метки могут быть одни и те же, а файлы с текстом могут быть разные: ты можешь перевести свою игру на какой-либо другой язык
Snake174, После первого же вызова b_first_slot() выдает: Программа неожиданно завершилась. /media/los/d911addc-522c-421d-8c0b-cbce730f7b8b/cpp/qt/quest/game/g2/build-Story-Desktop_Qt_5_5_1_GCC_64bit-Release/Story завершился крахом
Поможешь разобраться в чем ошибка?
Код
//При нажатии кнопки: void Room_One::b_first_slot() { b1++; switch(b1) { case 1: reader(0); break; case 2: reader(1); break; case 3: reader(2); break; default: label_text->setText("b1 ушло за предел"); } }
Snake174, по JSON и XML не нашел к сожалению инфы на русском, а те что нашел не объясняли как ставить это на линуху, а на ней я не так давно чтоб разобрать самому, вариант что ты предложил кстати показался сразу понятным и логичным. Тоже хотел так сделать, не знал как хд) Теперь всё работает. Спасибо тебе!
Про разделители:
r1-1.txt
Цитата
Пламя так и не зажглось, и тот придурок лишился пальца. m01 Неудачно. Но я бы не стал поднимать ставки так высоко. В мире, где всем правят случайности, ты постоянно играешь. Получишь ли работу, которую давно хотел? Выиграешь ли дело в суде? Сколько тысяч отдашь за буханку хлеба, сколько мелочи потратишь на, казалось бы, дорогостоящее лекарство? m02 ещё тексту... m03 буква m с цифрами - разделитель
Сообщение отредактировал Lord16 - Пятница, 11 Марта 2016, 14:21
, поскольку список пустой А причина в том что путь ".//tex/r1-1.txt" кривой. Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
Это все напоминает очень плохой анекдот. Язык C (и C++, как его "развитие") создан как часть ОС Unix и, следовательно, изначально не умел ничего вводить (в т.ч. от пользователя) иначе, чем через файл. И, вот, новые библиотеки, извращаясь в своей "переносимости" это делать разучились. Причем, иногда это можно было бы оправдать, если бы они всерьез что-то делали, а не просто играли в фантики. Например в Win API проще читать дисковые файлы через механизм управления виртуальной памятью. Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Это все напоминает очень плохой анекдот. Язык C (и C++, как его "развитие") создан как часть ОС Unix и, следовательно, изначально не умел ничего вводить (в т.ч. от пользователя) иначе, чем через файл.
Все как раз наоборот Концепция UNIX - "все является файлом", а не "ничего кроме файлов".
Это логически (и программистски) эквивалентные выражения. Так что никаких "наоборот" тут быть не может. Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.