Поиск значения в строке c++

198
18 марта 2018, 21:29

Пытаюсь найти подстроку в строке

Есть файл 2.html. В нем есть значение "Ваш IP". Считываю построчно и пытаюсь найти в строке необходимое значение.

#include <windows.h>
#include <iostream>
#include <string>
#include <fstream>
#include <locale.h>
using namespace std;
int main() {
    setlocale(LC_ALL, "");
    bool t = false;
    size_t temp;
    string str;
    char buf[2048];
    const char* substr = "Ваш IP";
    ifstream file;
    file.open("2.html");
    while (!file.eof()) {
        getline(file, str, '\n');
        ZeroMemory(buf, 2048);
        strcpy(buf, str.c_str());
        t = OemToAnsi(buf, buf);
        str = (string)buf;
        temp = str.find(substr);
        if (temp != string::npos)
            break;
    }
    file.close();
    cout << str << endl;
    Sleep(3000);
    return 0;
}

При выполнении цикла в отладчике видно, что из файла считываются каракули в тех строках, где есть русские буквы. Как я их только не пытался перевести. Не выходит. Поэтому и не ищет значение. Как решить эту задачу ?

(файл 2.html получен скачиванием страницы http://2ip.ru)

substr переобъявлял через массив char и переводил в OEM. Не ищет

READ ALSO
Как исправить ошибку: &ldquo;warning C6385: Переполнение буфера при записи в &hellip; &rdquo;?

Как исправить ошибку: “warning C6385: Переполнение буфера при записи в … ”?

// Массив должен выводится с допстолбцом в начале и после этого выдавать запрос на продолжение работы в программе или выход

393
C++ классы, преобразовать программу

C++ классы, преобразовать программу

Был код, калькулятор римских и арабских чиселНужно его преобразовать, чтобы был в 3 файла main

219
expected primary-expression before &#39;*&#39; token

expected primary-expression before '*' token

Добрый день, подскажите пожалуйста, что я делаю не так? Хочу создать структуру из двух байтов и указателя на функцию, прикомпиляции выдает...

214
Ошибка в работе деструктора

Ошибка в работе деструктора

Помогите пожалуйста разобраться в данной ошибкеСам еще только учусь, поэтому потратил большое количество времени, пытаясь разобраться в этом

218