1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

Запись И Чтение Бинарного Файла На Си

Тема в разделе "C/C++/C#", создана пользователем leon91, 15 дек 2012.

  1. leon91

    leon91 Гость

    Репутация:
    0
    Доброго времени суток!

    Уже какой час бьюсь над проблемой и не могу никак решить ее :)

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

    Листинг программы:

    Код (C++):
    #include <stdio.h>
    #include <stdlib.h>

    #define inputfName "input.txt"
    #define outputfName "output.txt"

    typedef struct
    {
    char city[40]; // citta'
    char hotelName[40]; // nome di albergo
    int room1; // numero di stanze singole
    int room2; // numero di stanze doppie
    float room1Cost; // costo di una stanza singola
    float room2Cost; // costo di una stanza doppia
    } Alberghi;


    void parsingToStruct (FILE *alfa, FILE *beta);
    void visualizza (FILE *beta);


    int
    main()
    {
    FILE *alfa, *beta;

    parsingToStruct (alfa, beta);
    visualizza (beta);
    }

    /* Модуль парсинга и создания бинарного файла */

    void
    parsingToStruct (FILE *alfa, FILE *beta)
    {
    Alberghi albergo1;
    int n=0;

    alfa=fopen(inputfName,"r");
    beta=fopen(outputfName, "wb");

    if(alfa==NULL)
    printf("Errore");

    else {

    rewind(alfa);

    while(fscanf(alfa,"%[^;]; %[^;]; %d; %f; %d; %f;\n",albergo1.city,albergo1.hotelName,&albergo1.room1, &albergo1.room1Cost,&albergo1.room2,&albergo1.room2Cost)!=EOF){
    fwrite(&albergo1, sizeof(Alberghi), n, beta);          
    printf("\n[%d] %s %s %d %.2f %d %.2f", n, albergo1.city,albergo1.hotelName,albergo1.room1, albergo1.room1Cost,albergo1.room2,albergo1.room2Cost);
    n++;
    }

    fclose(alfa);
    fclose(beta);

    printf("\n\n");
    system("pause");
    }
    }

    /* Модуль отображения полученного файла */

    void
    visualizza (FILE *beta)
    {
    Alberghi albergo1;
    int stato;
    int i=1;

    beta=fopen(outputfName,"rb");
    stato=fread(&albergo1,sizeof(Alberghi),1,beta);

    while (stato==1){
    printf("\n[%d] %s %s %d %.2f %d %.2f", i, albergo1.city, albergo1.hotelName, albergo1.room1, albergo1.room1Cost, albergo1.room2, albergo1.room2Cost);
    i++;
    stato=fread(&albergo1,sizeof(Alberghi),1,beta);
    }

    fclose(beta);

    printf("\n\n");
    system("pause");
    }
     
  2. rrrFer

    rrrFer Гость

    Репутация:
    0
    какая проблема ?
     
  3. leon91

    leon91 Гость

    Репутация:
    0
    При записи в бинарный файл появляется мусор в структуре:
    Запись И Чтение Бинарного Файла На Си
     
  4. rrrFer

    rrrFer Гость

    Репутация:
    0
    тут стопудово косяк, почему 3 аргумент n? замени на 1
     
Загрузка...
Похожие Темы - Запись Чтение Бинарного
  1. Fazer77777
    Ответов:
    2
    Просмотров:
    1.231
  2. AlexPNZ
    Ответов:
    9
    Просмотров:
    2.422
  3. smail2234

    Решите Запись в файл

    smail2234, 3 апр 2017, в разделе: C/C++/C#
    Ответов:
    1
    Просмотров:
    175
  4. victorhalf
    Ответов:
    3
    Просмотров:
    1.164
  5. ученикLN
    Ответов:
    2
    Просмотров:
    1.033

Поделиться этой страницей