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

Файловые потоки данных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Путем перестановок строк и столбцов (целиком) элемент надо переместить в правый верхний угол подмассива (Перевести программу в c++) http://www.cyberforum.ru/cpp-beginners/thread758179.html
program zadanie_5; uses crt; const nn=5; var i, j, imax, jmax, n, k, m: integer; a: array of real; r: real; begin writeln('Задайте количество строк и столбцов'); readln(n);
C++ Задача на Классы. Создать класс треугольник Прошу пожалуйста помочь составить программу на С++ по задаче: создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть в классе методы проверки существования треугольника, вычисления и вывода сведений о фигуре – длины сторон, углы, периметр, площадь. Сама не пойму,а завтра нужно сдать( помогите пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread758174.html
C++ Дано натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 7
Дано натуральные числа от 1 до 50. Найти сумму тех из них, которые делятся на 5 или на 7.
C++ Написать класс сверхбольших целых чисел, использовать массив типа char
Задача: написать класс сверхбольших чисел ( нет ограничений на количество цифр ) использовать массив типа char, реализовать основные математические операции. Буду благодарен за любые подсказки и любую помощь. Заранее вам спасибо, очень нужно для зачета
C++ перегрузка [] http://www.cyberforum.ru/cpp-beginners/thread758158.html
Есть класс, и почему компилятор выдает ошибку на функции int &operator(int); #ifndef ARRAY1_H #define ARRAY1_H #include <iostream.h> class Array{ friend ostream &operator<<(ostream &, Array &); friend istream &operator>>(istream &, Array &);
C++ Сравнить два массива, заданных классами Имеется class array и class array2. В них описаны массивы. И два метода, заполняющие их. Нужно сравнить два этих массива (Вывести одинаковые элементы) В силу неопытности, не могу разобраться как сравнить их. Помогите разобраться пожалуйста. :) А ещё надо разработать метод слияния этих массивов(но без решения предыдущей задачи, я не справлюсь :cry:) Пытался как-то так, но не получилось:... подробнее

Показать сообщение отдельно
cadet
115 / 76 / 6
Регистрация: 10.01.2010
Сообщений: 275
10.01.2013, 22:17     Файловые потоки данных
Учебник Богатырева. возможно поможет)

7.33. Напишите программу, печатающую строки файла в обратном порядке. Не считывать
файл целиком в память! Следует использовать метод "обратного чтения" либо метод
"быстрого доступа" к строкам файла, описанный в главе "Работа с файлами".


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
/* Инвертирование порядка строк в файле.
     * Используется та идея, что файл-результат имеет тот же
     * размер, что и исходный
     */
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <stdio.h>
 
    #define BUFS 4096       /* максимальная длина строки */
 
    void main(int argc, char **argv )
    {
            FILE *fp;
            struct stat st;
            long len;
            char buffer[ BUFS+1 ];
            FILE *fpnew;      /* инверсный файл */
            int lgt;
 
            if( argc != 2 ){
                    printf("Error: must be filename\n");
                    exit(1);
            }
            if( (fp= fopen( argv[1], "r" )) == NULL ){
                    printf( "Can not open %s\n", argv[1] );
                    exit(2);
            }
            stat( argv[1], &st );   /* fstat(fileno(fp), &st); */
            len = st.st_size;       /* длина файла в байтах */
 
            if( (fpnew = fopen( "inv.out", "w" ))== NULL ){
                    printf("Can not create file\n");
                    exit(3);
            }
 
            while( fgets( buffer, sizeof buffer, fp ) != NULL ){
                    lgt = strlen( buffer );
                    fseek(fpnew, len - lgt , 0);
                    /* Помните, что смещение у lseek и fseek -
                     * это число типа long, а не int.
                     * Поэтому лучше всегда писать
                     *      lseek(fd, (long) off, whence);
                     */
                    len -= lgt;
                    fprintf( fpnew, "%s", buffer );
                    /* или лучше  fputs(buffer, fpnew); */
            }
            fclose( fp ); fclose( fpnew );
    }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru