Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2010, 10:39   #1
mazak
Пользователь
 
Аватар для mazak
 
Регистрация: 10.07.2009
Сообщений: 29
Смущение Поиск числа в бинарном файле.

Тема не новая, знаю, но пока поиск не принес ожидаемых результатов.
Проблема проста как МИР: найти заданное число в файле.
Числа в файле имеют вот такой вот вид:
510 7 259 23 10
36 6 1 6
10 4 1479 7 8

Как я себе представляю решение
Код:
                            

#include "fstream.h"
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <string>

using namespace std;

void main()
{
	
	string search_number;
	string number;
	cin >> search_number;
	int z=0;

      
         fstream inFile;
	inFile.open("c:\\iksk.dat");

          if(!(inFile))

          {cout<<" Fail otsutstvuet"<<endl;}



	while(!(inFile.eof()))
	{
		getline(inFile, search_number, ' ');

		if (number.compare(search_number)==NULL)
			//cout<<"naschlos  sadannoe snachenie "<<endl;
        z++ ;
	}
        cout<<" naschlos"<<z<<"sovpadenij"<<endl;
	getch();

Но ручонки все таки кривёхонькие не работает прога.
Пните в нужную сторону плиз.
Благими намерениями вымощена дорога в ад

Последний раз редактировалось mazak; 17.02.2010 в 13:45. Причина: ошибки
mazak вне форума Ответить с цитированием
Старый 17.02.2010, 12:52   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Раз файл бинарный, то начните с ответов на вопросы:
В каком формате хранятся числа в файле?
Ищем всех размеров числа или только байт, слово...?
Каких размеров файл нужно обрабатывать?
p51x вне форума Ответить с цитированием
Старый 17.02.2010, 13:54   #3
mazak
Пользователь
 
Аватар для mazak
 
Регистрация: 10.07.2009
Сообщений: 29
По умолчанию

Код:
#include <fstream>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <string>

using namespace std;

void main()
{
    int search_number = 0;
    int int_number = 0;
    string number;

    cin >> search_number;
    
    int z = 0;
    fstream inFile;
    inFile.open("c:\\iksk.dat");

    if(!(inFile))
        cout<<"Нет файла с таким именем"<<endl;

    while(!(inFile.eof()))
    {
        getline(inFile, number, ' ');
        int_number = atoi( number.c_str() );
    
        //if (int_number.compare(search_number)==NULL)
        if(int_number == search_number)
            //cout<<"naschlos  sadannoe snachenie "<<endl;
            z++ ;
    }

    cout<<" Было найдено  "<<z<<"  совпаденией"<<endl;
    getch();
}
Hу в общем как то так вот.
Спасибо p51x
Благими намерениями вымощена дорога в ад

Последний раз редактировалось mazak; 17.02.2010 в 13:57.
mazak вне форума Ответить с цитированием
Старый 17.02.2010, 13:58   #4
mazak
Пользователь
 
Аватар для mazak
 
Регистрация: 10.07.2009
Сообщений: 29
По умолчанию

Хочу сделать оговорку файл не бинарный текстовый.
Благими намерениями вымощена дорога в ад
mazak вне форума Ответить с цитированием
Старый 17.02.2010, 19:13   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от mazak Посмотреть сообщение
Тема не новая, знаю...
это уж точно )

Цитата:
Сообщение от mazak 21.09.2009
Привет ! Подскажи пожалуйста как найти число в файле txt !

Какие нужны библиотечные функции обработки строк ?
Цитата:
Сообщение от netrino 21.09.2009
Код:
#include <iostream>
#include <fstream>

int main()
{
	std::ifstream file("E:\\file.txt"); // Открываем файл

	int number;                         // Объявляем переменную куда будем читать
	while(!file.eof()) {                // Пока не конец файла
		file >> number;                 // Читаем число в нашу переменную
		std::cout << number << ' ';     // И выводим его на в консоль
	}

	std::cout << std::endl;

	file.clear();                       // Очищаем флаг eof(конец файла)
	file.seekg(std::ios::beg);          // Прыгаем на начало файла

	while(!file.eof()) {                // Опять же, пока не конец файла
		file >> number;                 // Читаем число в переменную
		if(number == 235)               // Если это _то_самое_ число
			std::cout << "Founded!" << std::endl;  // То выводим в консоль сообщение, о том, что мы его нашли :)
	}

	file.close();                       // Закрываем файл.

	return 0;
}
неужели за столько месяцев нельзя было разобраться в этих нескольких строчках кода? )
netrino вне форума Ответить с цитированием
Старый 18.02.2010, 12:05   #6
mazak
Пользователь
 
Аватар для mazak
 
Регистрация: 10.07.2009
Сообщений: 29
По умолчанию

Можно было конечно.Каюсь!
Благими намерениями вымощена дорога в ад
mazak вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск непарного числа в файле lexus Помощь студентам 8 20.12.2009 20:40
поиск файле foxes Общие вопросы Delphi 4 01.06.2009 15:40
Поиск в бинарном дереве не по ключу lebrosha Помощь студентам 2 26.05.2009 15:32
Расчет числа строк в типизированном файле 1234 Паскаль, Turbo Pascal, PascalABC.NET 6 20.05.2008 11:14
являются ли числа в файле упорядоченными Pohmel Помощь студентам 6 21.04.2008 16:12