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

Чтени из двоичного файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Файлы Visual Studio 2008 http://www.cyberforum.ru/cpp-beginners/thread152771.html
Трабл серьезный, абсолютно все программы(С\С++) которые работают с файлами перестали работать внутри среды , то есть вот есть рабочий код если его запустить в режиме отладки ничего не работает, если запустить без отладки так же ничего, НО! если открыть папку проекта и запустить exe'шник вне IDE то вcе отлично работает. Может будут хоть какие нибудь предположения что делать.... MS Visual Studio...
C++ дескриптор элемента управления Как мне например узнать дескриптор кнопки в программе??? http://www.cyberforum.ru/cpp-beginners/thread152763.html
C++ Узнать скорость соеденения и определить NAT
здраствуйте... нужно создать программу на Visual C++ или чистом С.... консольная программа для теста скорости интернета(возможно через 2ip.ru или internet.yandex.ru)... ёщо нужно определить есть ли NAT(по ип)....... подскажыте как ето реализовать.....возможно есть библиотеки для работы с етим....
Получить символы между двоеточиями C++
даны натуральное число n и символы s1(1 стоит под s как s ное)..., sn,среди которых есть двоеточие.получить все символы,расположенные между первым и вторым двоеточием.если второго двоеточия нет,то получить все символы,расположенные после единственного имеющегося двоеточия.
C++ Работа с файлами: получить заданную строку http://www.cyberforum.ru/cpp-beginners/thread152740.html
Даны текстовый файл, строка s. Получить все строки файла f, содержащие в качестве фрагмента строку s. Не надо злоупотреблять Caps Lock! Уважай окружающих и, возможно, к тебе отнесутся также.
C++ Структуры данных в С++ Последнее время стал с тыкаться с такими заданиями как связанные со стеками, очередями, списками и т.д., в общем со структурами данных. Но пока что я сними не очень хорошо ориентируюсь и хотелось попросить вас помочь найти теорию, алгоритмы и примеры реализации их на С++ да и вообще в ООП. Хочу понять саму суть структуры данных и как это все реализовать. Просьба посоветовать что можно почитать на... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
10.07.2010, 00:04     Чтени из двоичного файла
IMD, Ваш код не смотрел, сделал по-своему...
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
/* Создаёт массив заданного размера, заполняет его случайными числами и записывает в двоичный файл. 
В начале файла указывается количество строк и столбцов */
 
int main(void){
    char buf[BUFSIZ];
    int rows, columns, **matrix, i, j;
    FILE * f;
    
    printf("Rows: ");
    scanf("%d", &rows);
    printf("Columns: ");
    scanf("%d%*c", &columns);
    
    srand(time(NULL));
    printf("Matrix:\n");
    if ( ( matrix = (int**)calloc(rows, sizeof(int*)) ) == NULL ){
        fprintf(stderr, "Memory error!\n");
        exit(EXIT_FAILURE);
    }
    for ( i = 0; i < rows; ++i ){
        if ( ( matrix[i] = (int*)calloc(columns, sizeof(int)) ) == NULL ){
            fprintf(stderr, "Memory error!\n");
            exit(EXIT_FAILURE);
        }
        for ( j = 0; j < columns; ++j )
            printf("%02d ", ( matrix[i][j] = rand() % 100 ));
        printf("\n");
    }
    
    printf("\nName for output file: ");
    scanf("%s", buf);
    if ( ( f = fopen(buf, "wb") ) == NULL ){
        fprintf(stderr, "Can't open file % s for output!\n", buf);
        exit(EXIT_FAILURE);
    }
    
    if ( fwrite(&rows, sizeof(int), 1, f) != 1 ){
        fprintf(stderr, "Can't write to output file!\n");
        exit(EXIT_FAILURE);
    }
    if ( fwrite(&columns, sizeof(int), 1, f) != 1 ){
        fprintf(stderr, "Can't write to output file!\n");
        exit(EXIT_FAILURE);
    }
    for ( i = 0; i < rows; ++i ){
        if ( fwrite(matrix[i], sizeof(int), columns, f) != columns ){
            fprintf(stderr, "Can't write to output file!\n");
            exit(EXIT_FAILURE);
        }
    }
    fclose(f);
    for ( i = 0; i < rows; ++i )
        free(matrix[i]);
    free(matrix);
    
    printf("done.\n");
    exit(EXIT_SUCCESS);
}
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
#include <stdio.h>
#include <stdlib.h>
 
/* Читает матрицу из указанного двоичного файла и пишет в указанный текстовый */
 
int main(void){
    char fin_name[BUFSIZ], fout_name[BUFSIZ];
    FILE * fin, * fout;
    int * arr, i, j, rows, columns;
    
    printf("Input file: ");
    scanf("%s", fin_name);
    printf("Output name: ");
    scanf("%s", fout_name);
    
    if ( ( fin = fopen(fin_name, "rb") ) == NULL ){
        fprintf(stderr, "Can't open file %s for input!\n", fin_name);
        exit(EXIT_FAILURE);
    }
    if ( ( fout = fopen(fout_name, "w") ) == NULL ){
        fprintf(stderr, "Can't open file %s for output!\n", fout_name);
        exit(EXIT_FAILURE);
    }
    
    if ( fread(&rows, sizeof(int), 1, fin) != 1 ){
        fprintf(stderr, "Can't read from input file!\n");
        exit(EXIT_FAILURE);
    }
    if ( fread(&columns, sizeof(int), 1, fin) != 1 ){
        fprintf(stderr, "Can't read from input file!\n");
        exit(EXIT_FAILURE);
    }
    if ( ( arr = (int*)calloc(columns, sizeof(int)) ) == NULL ){
        fprintf(stderr, "Memory error!\n");
        exit(EXIT_FAILURE);
    }
    for ( i = 0; i < rows; ++i ){
        if ( fread(arr, sizeof(int), columns, fin) != columns ){
            fprintf(stderr, "Unexpected end of file!\n");
            exit(EXIT_FAILURE);
        }
        for ( j = 0; j < columns; ++j ){
            if ( fprintf(fout, "%02d%c", arr[j], ( j < columns - 1 ) ? ' ' : '\n') < 0 ){
                fprintf(stderr, "Can't write to output file!\n");
                exit(EXIT_FAILURE);
            }
        }
    }
    
    fclose(fin);
    fclose(fout);
    free(arr);
    
    printf("done.\n");
    exit(EXIT_SUCCESS);
}
Чтени из двоичного файла
 
Текущее время: 10:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru