Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
39 / 27 / 12
Регистрация: 31.12.2013
Сообщений: 329

Как сделать счет чисел с конца файла

01.02.2014, 18:16. Показов 4762. Ответов 52
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Hello, world!
Возник такой вопрос, как сделать счет чисел с конца?
Имеется ввод периода.

Заранее Спасибо

Добавлено через 36 минут
Added: С конца файла
До n числа введенного при T
То есть ввожу T = 35;
И он прочитывает .txt файл и с конца выводит с 1 по 35 число
пробовал циклом, выдает чушь 5-6 чисел o_O
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.02.2014, 18:16
Ответы с готовыми решениями:

Работа с файлом, счёт строк, ошибка конца файла
Доброго времени суток! При исполнении сборки ни cmd ни far32 воспроизвести желаемый результат не смогли. Я предполагаю ошибку конца...

пытаюсь сделать реализацию через считывание из файла кол-ва чисел, i,но незнаю как сделать реализацию из файла в массив и сортировки.
В файле input.txt находится неизвестное количество вещественных чисел в интервале . Выцапарать их оттуда, отсортировать по убыванию модуля...

Чтение чисел из файла до конца строки
Есть один файл. В первой строке написано общее количество последующих строк, во всех остальных — как раз эти строки, в каждой из которых...

52
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
04.02.2014, 19:46
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Esecman Посмотреть сообщение
до окончания периода
Это какие? С 0 до K-N?

Добавлено через 30 секунд
По ним в любом случае надо будет пройтись - по мере чтения делайте что хотите.
0
39 / 27 / 12
Регистрация: 31.12.2013
Сообщений: 329
04.02.2014, 19:47  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
Это какие? С 0 до K-N?

Добавлено через 30 секунд
По ним в любом случае надо будет пройтись - по мере чтения делайте что хотите.
Нет!
Ввожу период 35
Он тут же открывает .txt файл и выводит все числа до 35 строки(с конца)
Конечно, вывести 35 чисел с конца - не беда(для этого есть циклы);
Но вот как сделать, чтобы с конца ридал до T периода
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
04.02.2014, 19:52
Короче, вот входной файл:
Code
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
0
Пусть Т = 3.
Что должна программа вывести на выходе?
0
39 / 27 / 12
Регистрация: 31.12.2013
Сообщений: 329
04.02.2014, 19:53  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
Короче, вот входной файл:
Code
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
0
Пусть Т = 3.
Что должна программа вывести на выходе?
0
9
8
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
04.02.2014, 19:59
Esecman, в таком случае любое из двух предложенных решений подходит.
То, что для вас принципиально именно чтение из файла с конца, а не обход буфера от конца к началу - следствие изначально некорректно поставленной задачи.
На этом я удаляюсь из темы.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
05.02.2014, 09:08
Цитата Сообщение от Esecman Посмотреть сообщение
0
9
8
для этого можно использовать стек
создаешь стек
записываешь туда все значения из файла
снимаешь из стека ( считываешь) нужное количество
удаляешь стек
достоинства
файл считывается за один проход
недостатки при большом размере файла большой размер стека
второй способ позиционирование указателя в файле
открываем файл
указатель в конец-1
считываем
указатель -2 ( одно значение считаное второе чтобы перейти на предыдущий)
цикл
достоинства: меньше памяти
недостатки: дольше считывание придется елозить по файлу
третье решение
использовать файлы проецируемые в память и обращатся к нему как к массиву
0
39 / 27 / 12
Регистрация: 31.12.2013
Сообщений: 329
05.02.2014, 19:02  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
для этого можно использовать стек
создаешь стек
записываешь туда все значения из файла
снимаешь из стека ( считываешь) нужное количество
удаляешь стек
достоинства
файл считывается за один проход
недостатки при большом размере файла большой размер стека
второй способ позиционирование указателя в файле
открываем файл
указатель в конец-1
считываем
указатель -2 ( одно значение считаное второе чтобы перейти на предыдущий)
цикл
достоинства: меньше памяти
недостатки: дольше считывание придется елозить по файлу
третье решение
использовать файлы проецируемые в память и обращатся к нему как к массиву
А на примере можно?

Добавлено через 5 часов 5 минут
hey D:
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
05.02.2014, 19:19
Цитата Сообщение от Esecman Посмотреть сообщение
А на примере можно
на примере чего?
сферического коня в вакууме
ты не даешь ни нормальное ТЗ ни формат файла
направление я тебе указал
первое изучить контейнеры типа stack
второе посмотреть как работают указатели позиции файла
http://www.vsokovikov.narod.ru... inters.htm
третье посмотреть что есть файлы проецируемые в память
http://cppclub.newmail.ru/articles/win32_35.html
что из них выбрать тебе решать
0
39 / 27 / 12
Регистрация: 31.12.2013
Сообщений: 329
08.02.2014, 19:57  [ТС]
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main() {
    
    int NUM_OF_FILE_1 = 0;
    int NUM_OF_FILE_2 = 0;
    int NUM_OF_FILE_3 = 0;
    
    float n = 0;
    
    ifstream in_1("data.txt");
    ifstream in_2("data.txt");
    ifstream in_3("data.txt");
    
    ofstream output("output.txt");
    ofstream output2("output2.txt");
    ofstream output3("output3.txt");
    
    FILE* file;
    FILE* file1;
    FILE* file2;
    
    file = fopen("data.txt", "r");
    file1 = fopen("data.txt", "r");
    file2 = fopen("data.txt", "r");
    
    int T_1 = 34; // number of byte
    int T_2 = 34; // number of byte
    int T_3 = 34; // number of byte
    
    /* data #3 */
    while(!feof(file)) {
    fscanf(file, "%f", &n);
    NUM_OF_FILE_1++;
    }
    
    /* data #2 */
    while(!feof(file1)) {
    fscanf(file1, "%f", &n);
    NUM_OF_FILE_2++;
    }
    /* data #3 */
    while(!feof(file2)) {
    fscanf(file2, "%f", &n);
    NUM_OF_FILE_3++;
    }
 
    for(int i = 0; i < NUM_OF_FILE_1; ++i) {
    in_1.seekg(-T_1, ios::end);
    }
    
    while(in_1) {
    string str;
    getline(in_1, str);
    output << str << endl;
    }
    
    for(int i = 0; i < NUM_OF_FILE_2; ++i) {
    in_2.seekg(-T_2, ios::end);
    }  
    
    while(in_2) {
    string str;
    getline(in_2, str);
    output2 << str << endl;
    }
    
    for(int i = 0; i < NUM_OF_FILE_3; ++i) {
    in_3.seekg(-T_3, ios::end);
    }  
    
    while(in_3) {
    string str;
    getline(in_3, str);
    output3 << str << endl;
    }     
    
    system("pause");    
}
Сделал по иному
где T = 35(в байтах )
Нужно сделать перевод из битов в байты еще
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
08.02.2014, 22:48
Цитата Сообщение от Esecman Посмотреть сообщение
file = fopen("data.txt", "r");
* * file1 = fopen("data.txt", "r");
* * file2 = fopen("data.txt", "r");
это ты три раза один и тот же файл открываешь?
0
39 / 27 / 12
Регистрация: 31.12.2013
Сообщений: 329
09.02.2014, 19:45  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
это ты три раза один и тот же файл открываешь?
Нет. Будет ввод трех файлов
т.к. у меня дата одна, то сделал одно и тоже

// Тестовый код на скорую руку.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
11.02.2014, 08:23
Цитата Сообщение от Esecman Посмотреть сообщение
// Тестовый код на скорую руку.
и что работает?
у тебя после того как открыл первый раз файл
файл заблокируется
и остальные два раза не должны открываться, "ошибка доступа" "Файл занят"
0
39 / 27 / 12
Регистрация: 31.12.2013
Сообщений: 329
12.02.2014, 14:08  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
и что работает?
у тебя после того как открыл первый раз файл
файл заблокируется
и остальные два раза не должны открываться, "ошибка доступа" "Файл занят"
Код работает
Чушь не несите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.02.2014, 14:08

как сделать счет
редбята подскажите как можно сделать такое. к примеру я делаю программу по оплате коммунальеных платежей. есть платежка естественно. как...

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

Как в игре сделать счёт голов?
Помогите пожалуйста. Как в игре сделать счёт голов? Думал сделать что когда мяч достигает координат пола, тогда засчитывался гол, но так...

А как на счет сделать раздел с кодами на VB на сайте?
Господа, Хотелось бы иметь место на этом сайте куда можно было бы примеры кодов и программок кидать. А то уж очень трудно иногда...

Как сделать счёт строк слева в DataGridView
Как сделать счёт строк слева в DataGrid? Предполагаю что где-то в свойствах, но найти не могу.


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

Или воспользуйтесь поиском по форуму:
53
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru