n
newbie.works.with.QT4 марта 2019 г. 13:07
как найти конкретную строку в файле (блокнот)
У меня следуйщая задача:
ввожу слово или код в консоль, программка считывает, находит в блокноте нужную строку записывает две переменные:
(1-я ту строку которую мы нашли благодоря слову или коду и
2-я следуйщая сторка после неё)
вот так вот.
у меня есть только проверка есть ли слово или код:
#include <iostream> #include <windows.h> #include <string.h> #include <fstream> using namespace std; int main() { char word[256], line[256], tmp[256]; char *buf = NULL; ifstream file; setlocale(0, ""); cout << "слово для поиска: "; cin.get(word, 256, '\n'); file.open("D:\\TRAN\\Lib6.txt", ios::in); if(!file) { cout<<"нет такого файла!!!!"<<endl; exit(1); } while (!file.eof()) { file.getline(line, 256, '\n'); strcpy(tmp, line); buf = strtok(tmp, " "); if (buf == NULL) { cout << "Ошибка" << endl; file.close(); system("pause"); exit(1); } if (strcmp(buf, word) == 0) { cout << line <<" : найдено совпадение" << endl; system("pause"); exit(0); } } cout << "нет подобных значений" << endl; file.close(); system("pause"); return 0; }
и просто вывод текста:
const int len = 300, strings = 6; const char ch = '\n'; char mass[len][strings]; ifstream fs("D:\\TRAN\\Lib6.txt", ios::in | ios::binary); if(!fs) return 1; for(int r = 0; r<strings; r++) { fs.getline(mass[r], len-1,ch); cout << "String " << r+1 << " = "<< mass[r] << endl; } fs.close();
а вот найти строку по слову, записать в переменную
эту строку и в другую переменную следуйщую строку не знаю как...
кажется двигаюсь не в том направлении :(
помогите пожалуйста.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
B
- Bogdannn
- 28 марта 2024 г. 2:15
C++ - Тест 001. Первая программа и типы данных
- Результат:46баллов,
- Очки рейтинга-6
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5 февраля 2024 г. 9:50
EVA25 декабря 2023 г. 18:30
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
Павел Дорофеев14 апреля 2024 г. 9:35
Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
Как получить в массив значения из связанной модели? Спасибо, разобрался:))
AC
QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…
Alexandru Codreanu19 января 2024 г. 19:57
Добрый день!
Вы не пробовали использовать std::string для строк?
Это было бы несколько проще для поиска строк, вот примеры для поиска строк в строке std::string
Добрый вечер,
спасибо за ссылку. А для работы нужно весь текст из txt записывать? не получается организовать чтение из файла (не знаю как это сделать)
конечно, нужно считывать
Вот например один из вариантов чтения из файла в одну строку
Большое спасибо!!!!
Только один вопрос: как записать в переменную всю строку сначала (у меня просто получается только кусок) и как записать следуйщую строку?
Вот у меня так получилось:
Мысли насчёт второй строчки таковы:
узнать где переход на следуйщую строку и узнать точку
и записать всё что между ними в переменную (только это в мыслях, а как скомпилировать так ошибки одни)
Что это за кракозябры в коде. Как вообще понять, что вы этим хотите сказать?
У себя код скомпилировал, ну в некоторых случаях там есть выход за пределы массива, если не находит тот же самый Seven.
Не совсем понимаю конкретики вашей проблемы. И ещё перепишите код с использованием фигурных скобок у условий. А то мне кажется, что вы просто не совсем понимаете синтаксис языка. Если фигурный скобок у if нет, то в C++ учитывается в качестве тела условия только одна следующая за if строка, и никакие отступы в данном языке программирования роли не играют.
пример прост: я пишу из консоли переменную string
-Chto chitaesh?
txt:
программа должна выдать:
-knigy.
непонимаю как сказать программе
- все символы после конца строки и до точки запиши в пременную dva
Ну вот так можно написать программу.
Сохранит в вектор все строки, которые оканчиваются на точку. В вашем случае это как раз ответы получаются.
Добрый вечер. Извините, неправильно написал.....
Ну так выводит все строки с точкой, а мне нужно только следуйщую после нашей.
Ну самый такой вариант в лоб, при полном совпадении строки вопроса и учитывая, что следующая строка, которая оканчивается на точку является ответом, можно написать так.
Большооооое спасибо!!!!!
Не передать как я вам благодарен, спасибо что всегда отзываетесь.
Теперь я смогу продолжить работу в QT!!! (пробую писать бота (Я как вы могли догадаться немного не програмист, моя специализация - анимация),
( с Ui разобрался (строка ввода с кнопочкой), а вот с блокнотом была проблема, но благодоря вам это уже в прошлом (в эти строчки будут закидываться не просто слова, а путь к Waw файлу))
Спасибо!!!!