В общем, есть файл *txt и в нем имеются строки типо таких: 27 января День воинской славы России. День снятия блокады города Ленинграда (1944г.) Код 27 января День воинской славы России. День снятия блокады города Ленинграда (1944г.) Ну, можно их в принципе поменять. Мне нужна такая программа, в которой я должен вписать дату или просто год, и программа будет искать совпадения со всего файла, а после выведет эту строку, где нашлось совпадение. Я понял то, что этот поиск можно осуществить посимвольно, либо как-то полностью что ли. Например: Я ввожу 1944 и прога выводит мне "День воинской славы России. День снятия блокады города Ленинграда (1944г.)". Ну примерно так +-. Делал по разному ничего не получается, что прога не видит в файле ничего, что она ничего не может в нем найти и все такое. Очень нужно, хоть какую-нибудь часть программы или приближенное
Изначально у меня была вот такая программа #include <fstream> #include <iostream> #include <string> #include <Windows.h> using namespace std; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); string buff, ent; while (true) { ifstream fin("D://Dev-Cpp//datt.txt"); cout << "Enter date: "; getline(cin, ent); getline(fin, buff); while (ent != buff) { getline(fin, buff); } getline(fin, buff); cout << (buff) << "\n______________________________________________________________________________\n" << endl; fin.close(); } system("pause"); return 0; } Код #include <fstream> #include <iostream> #include <string> #include <Windows.h> using namespace std; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); string buff, ent; while (true) { ifstream fin("D://Dev-Cpp//datt.txt"); cout << "Enter date: "; getline(cin, ent); getline(fin, buff); while (ent != buff) { getline(fin, buff); } getline(fin, buff); cout << (buff) << "\n______________________________________________________________________________\n" << endl; fin.close(); } system("pause"); return 0; } В ней я вводил, например: 1 января и она выводила мне "1) Новый год. 2) Всемирный день мира. 3) Национальный день похмелья. 4) Манифест о введении всеобщей воинской повинности и Устав воинской повинности (1874г.)" В самом текстовом документе это выглядит так: " 1 января 1) Новый год. 2) Всемирный день мира. 3) Национальный день похмелья. 4) Манифест о введении всеобщей воинской повинности и Устав воинской повинности (1874г.)" Ну и все работает, но когда я захотел сделать, чтобы программа искала везде и выводила строчки, где есть совпадения, то все, ничего не выходит, я хз
void word(int argc; CHAR* argv[] ; ) { fstream File; string FileName = ("Файл") ; do { File.open(FileName,ios::in); if (File == NULL) { cout « "Ошибка! Возможно такого файла не существует! Повторите ввод:" « endl; } } while (File==NULL); vector<string> Text; int i=0; string s; while (getline(File, s)) { Text.push_back(s); } string word; int h=0; cout « "Введите слово: " « endl; cin » word; cout « word « "»: "«еndl; for (int j=0; j < Text.size(); j++) { istringstream is(Text[j]); while (is » s) if (s.find(word) != string::npos) { cout « Text[j] « endl; ++h; } } if (h==0) cout«"Строк со словом « "word" « "нет"«endl; system("pause"); } Код void word(int argc; CHAR* argv[] ; ) { fstream File; string FileName = ("Файл") ; do { File.open(FileName,ios::in); if (File == NULL) { cout « "Ошибка! Возможно такого файла не существует! Повторите ввод:" « endl; } } while (File==NULL); vector<string> Text; int i=0; string s; while (getline(File, s)) { Text.push_back(s); } string word; int h=0; cout « "Введите слово: " « endl; cin » word; cout « word « "»: "«еndl; for (int j=0; j < Text.size(); j++) { istringstream is(Text[j]); while (is » s) if (s.find(word) != string::npos) { cout « Text[j] « endl; ++h; } } if (h==0) cout«"Строк со словом « "word" « "нет"«endl; system("pause"); } Что здесь не так?)