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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
01.02.2014, 18:16     Как сделать счет чисел с конца файла #1
Hello, world!
Возник такой вопрос, как сделать счет чисел с конца?
Имеется ввод периода.

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

Добавлено через 36 минут
Added: С конца файла
До n числа введенного при T
То есть ввожу T = 35;
И он прочитывает .txt файл и с конца выводит с 1 по 35 число
пробовал циклом, выдает чушь 5-6 чисел o_O
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2014, 18:16     Как сделать счет чисел с конца файла
Посмотрите здесь:

C++ Счет чисел в массиве
C++ Перебор файла посимвольно, как организовать цикл, работающий до конца файла.
автоматический счет имени файла C++
C++ std::cin, eof не всегда принимается как признак конца файла
C++ пытаюсь сделать реализацию через считывание из файла кол-ва чисел, i,но незнаю как сделать реализацию из файла в массив и сортировки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
04.02.2014, 19:46     Как сделать счет чисел с конца файла #41
Цитата Сообщение от Esecman Посмотреть сообщение
до окончания периода
Это какие? С 0 до K-N?

Добавлено через 30 секунд
По ним в любом случае надо будет пройтись - по мере чтения делайте что хотите.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
04.02.2014, 19:47  [ТС]     Как сделать счет чисел с конца файла #42
Цитата Сообщение от 0x10 Посмотреть сообщение
Это какие? С 0 до K-N?

Добавлено через 30 секунд
По ним в любом случае надо будет пройтись - по мере чтения делайте что хотите.
Нет!
Ввожу период 35
Он тут же открывает .txt файл и выводит все числа до 35 строки(с конца)
Конечно, вывести 35 чисел с конца - не беда(для этого есть циклы);
Но вот как сделать, чтобы с конца ридал до T периода
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
04.02.2014, 19:52     Как сделать счет чисел с конца файла #43
Короче, вот входной файл:
Код
1
2
3
4
5
6
7
8
9
0
Пусть Т = 3.
Что должна программа вывести на выходе?
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
04.02.2014, 19:53  [ТС]     Как сделать счет чисел с конца файла #44
Цитата Сообщение от 0x10 Посмотреть сообщение
Короче, вот входной файл:
Код
1
2
3
4
5
6
7
8
9
0
Пусть Т = 3.
Что должна программа вывести на выходе?
0
9
8
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
04.02.2014, 19:59     Как сделать счет чисел с конца файла #45
Esecman, в таком случае любое из двух предложенных решений подходит.
То, что для вас принципиально именно чтение из файла с конца, а не обход буфера от конца к началу - следствие изначально некорректно поставленной задачи.
На этом я удаляюсь из темы.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
05.02.2014, 09:08     Как сделать счет чисел с конца файла #46
Цитата Сообщение от Esecman Посмотреть сообщение
0
9
8
для этого можно использовать стек
создаешь стек
записываешь туда все значения из файла
снимаешь из стека ( считываешь) нужное количество
удаляешь стек
достоинства
файл считывается за один проход
недостатки при большом размере файла большой размер стека
второй способ позиционирование указателя в файле
открываем файл
указатель в конец-1
считываем
указатель -2 ( одно значение считаное второе чтобы перейти на предыдущий)
цикл
достоинства: меньше памяти
недостатки: дольше считывание придется елозить по файлу
третье решение
использовать файлы проецируемые в память и обращатся к нему как к массиву
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
05.02.2014, 19:02  [ТС]     Как сделать счет чисел с конца файла #47
Цитата Сообщение от ValeryS Посмотреть сообщение
для этого можно использовать стек
создаешь стек
записываешь туда все значения из файла
снимаешь из стека ( считываешь) нужное количество
удаляешь стек
достоинства
файл считывается за один проход
недостатки при большом размере файла большой размер стека
второй способ позиционирование указателя в файле
открываем файл
указатель в конец-1
считываем
указатель -2 ( одно значение считаное второе чтобы перейти на предыдущий)
цикл
достоинства: меньше памяти
недостатки: дольше считывание придется елозить по файлу
третье решение
использовать файлы проецируемые в память и обращатся к нему как к массиву
А на примере можно?

Добавлено через 5 часов 5 минут
hey D:
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
05.02.2014, 19:19     Как сделать счет чисел с конца файла #48
Цитата Сообщение от Esecman Посмотреть сообщение
А на примере можно
на примере чего?
сферического коня в вакууме
ты не даешь ни нормальное ТЗ ни формат файла
направление я тебе указал
первое изучить контейнеры типа stack
второе посмотреть как работают указатели позиции файла
http://www.vsokovikov.narod.ru/New_M...e_pointers.htm
третье посмотреть что есть файлы проецируемые в память
http://cppclub.newmail.ru/articles/win32_35.html
что из них выбрать тебе решать
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
08.02.2014, 19:57  [ТС]     Как сделать счет чисел с конца файла #49
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(в байтах )
Нужно сделать перевод из битов в байты еще
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
08.02.2014, 22:48     Как сделать счет чисел с конца файла #50
Цитата Сообщение от Esecman Посмотреть сообщение
file = fopen("data.txt", "r");
* * file1 = fopen("data.txt", "r");
* * file2 = fopen("data.txt", "r");
это ты три раза один и тот же файл открываешь?
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
09.02.2014, 19:45  [ТС]     Как сделать счет чисел с конца файла #51
Цитата Сообщение от ValeryS Посмотреть сообщение
это ты три раза один и тот же файл открываешь?
Нет. Будет ввод трех файлов
т.к. у меня дата одна, то сделал одно и тоже

// Тестовый код на скорую руку.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
11.02.2014, 08:23     Как сделать счет чисел с конца файла #52
Цитата Сообщение от Esecman Посмотреть сообщение
// Тестовый код на скорую руку.
и что работает?
у тебя после того как открыл первый раз файл
файл заблокируется
и остальные два раза не должны открываться, "ошибка доступа" "Файл занят"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2014, 14:08     Как сделать счет чисел с конца файла
Еще ссылки по теме:

Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") C++
C++ Как сделать чтобы перебор символов шел до конца строки? Если у меня например в ней есть пробелы?
Чтение файла с несколькими знаками конца файла C++

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

Или воспользуйтесь поиском по форуму:
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
12.02.2014, 14:08  [ТС]     Как сделать счет чисел с конца файла #53
Цитата Сообщение от ValeryS Посмотреть сообщение
и что работает?
у тебя после того как открыл первый раз файл
файл заблокируется
и остальные два раза не должны открываться, "ошибка доступа" "Файл занят"
Код работает
Чушь не несите.
Yandex
Объявления
12.02.2014, 14:08     Как сделать счет чисел с конца файла
Ответ Создать тему
Опции темы

Текущее время: 03:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru