Форум программистов, компьютерный форум CyberForum.ru

Поиск заданной последовательности символов в бинарном файле - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как считывать информация с файла по байтам http://www.cyberforum.ru/cpp-beginners/thread671448.html
У меня есть файл, выглядит как график, hex-вид : 00000001: 80 01 00 02 00 05 00 02 00 56 80 02 00 03 00 55 00000002: 56 00 00 04 22 00 88 00 00 05 87 00 80 03 25 00 первое слово 80 01 это координата Xи все слова начинающиеся на 80 это X второе слово 00 02 это координата Y третье слово 00 05 это значение переменной А в точке XY Далее идет чередование Y и A, и так до следующей координаты X...
C++ Обработка векторов в неразветвленном цикле Помогите пожалуйста решить задачку... Задание. Составить и испытать циклическую программу для получения результата, указанного в заданном варианте задания. Всюду далее набор индексированных значений, например X1, X2, X3, … , Xn, называется вектором. Для испытания программы подберите удобные значения n, и значения элементов векторов X 7. Вектор T такой, что Tk = k Xk ; k = 1, 2, 3, … , n.... http://www.cyberforum.ru/cpp-beginners/thread671408.html
C++ [C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc()
Пишу программу для обхода бинаронго дерева поиска. Программа написана и кажется даже работает, но только в консоли. Решил выводить дерево на экран, для наглядности, используя OpenGL (как раз его в это время начал изучать). Но тут появилась проблема, оказывается нельзя передать метод класса как параметр функции glutDisplayFunc(); Пытался что-то найти в интернете, но большого успеха этого не...
C++ Сжать массив путём удаления нулей
Нужно написать программу которая сжимает массив путём удаления нулей (если они есть), не используя вспомагательный массив. Буду очень благодарен!!!!!
C++ Есть ли аналог isalpha, только для string http://www.cyberforum.ru/cpp-beginners/thread671393.html
Добрый вечер! Как проверить, что введены только буквы, без символов, isalpha не прокатило:curtsy: , тока для символов cout<<"enter a word:"<<endl; cin>>word; while (true) { if(isalpha(word)) { cout<<"You entered: "<<word<<endl<<endl; break;
C++ Первый класс. Функция-член Добрый день! Пытаюсь собрать свой первый класс, но, кажется, не до конца понимаю всей сути. #include <stdio.h> #include <iostream> #include <string> #include <conio.h> #include <fstream> using namespace std; подробнее

Показать сообщение отдельно
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.10.2012, 20:47     Поиск заданной последовательности символов в бинарном файле
Цитата Сообщение от Mak Clyde Посмотреть сообщение
На temp[wl] компилятор выдаёт ошибку
Размерность статического массива должна задаваться константой.
Цитата Сообщение от Mak Clyde Посмотреть сообщение
А как сделать так, чтобы размерность массива была изменяющейся, в зависимости от слова поиска?
Создавать динамический масив:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if (wl<10)
{
  char *temp = new char[wl + 1];
  while (!feof(fp))
  {
       fscanf(fp, "%s", temp);
            
       if (!(strcmp(temp, word))) cnt++;
  }
            
   cout << "Совпадений: " << cnt <<endl;
            
   delete [] temp;
}

Но такой код, в целом, будет кривоват. Всё будет правильно работать, если слова в строке будут не больше чем введённое слово. Если какое-то слово в файле будет больше, то выделенной памяти уже не хватит. При освобождении памяти, на каких-то компиляторах, будет ошибка. Например, в VC 2010 - зависание, mingv - нормально отрабатывает, т.е. поведение неопределённое. Поэтому память нужно выделять с запасом, чтобы могло поместиться самое длинное слово из файла:
C++
1
char *temp = new char[255];
 
Текущее время: 01:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru