С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 28.09.2013
Сообщений: 61
1

Не находит числа в файле

14.11.2018, 15:24. Показов 498. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всех приветствую.
Такая проблема, в которую я не въезжаю:
Есть файл с пронумерованным списком, порядка 60 тысяч. Задача состоит в том, чтобы определить какие числа отсутствуют.
Но, блин. Когда я отлаживаю программу и иду по строкам, то int q; у меня равняется разным значениям.
Но когда я запускаю программы без отладки, то в консоль выводятся все числа, как-будто их там нет, то есть q постоянно равняется -1
Может кто подскажет, что я делаю не так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    fstream FILE("file.bin");
    string sText, str;
    int q;
    while(!FILE.eof())
        sText += FILE.get();    
    for (int i = 0; i < 62000; i++)
    {
        str = to_string(i);
        q = sText.find(str, 0);
        if (q == -1)
            cout << i << " not found" << endl;
    }
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2018, 15:24
Ответы с готовыми решениями:

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

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

Файл: Написать программу, которая создает файл содержащий целые числа, и находит наименьшее из чисел, содержащийся в файле.
Написать программу, которая создает файл содержащий целые числа, и находит наименьшее из чисел,...

Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие в файл F. Числа в файле G должны следовать
Помогите доздать с++) вот задание: Дан файл F, компонентами которого являются целые числа. Получить...

7
Мозгоправ
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
14.11.2018, 16:22 2
А что за файл? Может лучше из файла читать числа в вектор и потом по вектору искать?
0
0 / 0 / 1
Регистрация: 28.09.2013
Сообщений: 61
15.11.2018, 11:27  [ТС] 3
Проблемой оказался символ SUB, который циклу говорил, что файл закончился. Достаточно было просто исправить проблему удалением всех SUB из файла.
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
15.11.2018, 11:41 4
Цитата Сообщение от Искандер_61 Посмотреть сообщение
Но когда я запускаю программы без отладки, то в консоль выводятся все числа, как-будто их там нет,
C++
1
2
str = to_string(i);
q = sText.find(str, 0);
Если поиск идет чисел - то такой формат не прокатит. find() будет искать подстроку в строке, а значит при поиске числа 21 в 4621 выдаст наличие числа 21 в файле. Поясните задачу, или мы не сможем помочь ничем.
0
2128 / 1211 / 503
Регистрация: 11.10.2018
Сообщений: 6,110
15.11.2018, 11:45 5
Цитата Сообщение от Искандер_61 Посмотреть сообщение
C++
1
FILE
- а что за имя файла такое, не будет конфликта и пересечения с системным FILE?
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
15.11.2018, 11:46 6
FFPowerMan, нет, если не объявить переменную типа FILE перед этим
0
Злостный нарушитель
9598 / 5191 / 1185
Регистрация: 12.03.2015
Сообщений: 24,512
15.11.2018, 12:06 7
Дай файл.
0
1355 / 854 / 365
Регистрация: 26.02.2015
Сообщений: 3,806
15.11.2018, 12:30 8
Искандер_61, во-первых, нужно всегда проверять, открылся ли файл. Во-вторых, более правильным будет читать файл в условии цикла.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <fstream>
#include <iostream>
 
int main() {
 
    std::fstream file("numbers.txt");
 
    if (!file) {
 
        std::cout << "Cannot to open file\n";
        return 1;
 
    }
 
    int value;
 
    while (file >> value) {
 
        //...
 
    }
 
    system("PAUSE");
    return 0;
 
}
Добавлено через 27 секунд
В-третьих, числа в файле могут повторяться?

Добавлено через 1 минуту
В-четверых, зачем конвертировать строки в числа, а потом обратно в строки, когда можно обойтись одной конвертацией?
0
15.11.2018, 12:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2018, 12:30
Помогаю со студенческими работами здесь

Программа находит макс. номер в файле...
Написал программу с классами fstream, которая в определенном файле находит мин. номер и макс....

Почему в пустом файле находит один символ
Имеется файл. Осуществляю подсчет символов в нем. Вот если взять пустой файл - то выдает кол-во...

Написать программу, которая находит все четные натуральные числа не более числа N
Друзья, помогите, пожалуйста, решить задачу Задача: Напишите программу, которая находит все...

Напишите программу с функцией, которая находит все автоморфные числа числа из промежутка от А до В
Найдите, пожалуйста, ошибки!!! #include &lt;iostream&gt; using namespace std; bool Avtomorf (int n) {...

Пользователь задаёт число. Компьютер находит все простые числа в диапазоне от 1 до заданного числа.
Ребят, помогите пожалуйста с задачей, очень срочно нужно!!!! Послезавтра нужно сдать.....=(

Написать программу, которая находит и выводит на печать все четырехзначные числа, в которых не повторяются числа
&lt;?php For ($i=1000;$i&lt;=9999; $i++) $a=((int) ($i/1000)); $b=((int)($i/1000))%10;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru