MinGW C++ simple question

Тема в разделе "WASM.BEGINNERS", создана пользователем ltshck, 18 ноя 2007.

  1. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    Привет всем.

    Вот этот код

    #include <cstdio>

    int main()
    {
    FILE *f = fopen("exe.exe","r");
    FILE *fo = fopen("1.exe","w");

    char c;

    while (!feof(f))
    {
    fscanf(f,"%c",&c);
    fprintf(fo,"%c",c);
    }

    fclose(f);
    fclose(fo);
    }

    компилим MinGW g++.exe, получаем a.exe.
    // файл exe.exe (обычный переименованный calc.exe весит 115200 байт)
    и запускаем a.exe
    в результате работы получается 1.exe размером 1471 байт!!!

    Как это дело нормализовать?

    пробовал делать fflush в цикле - не помогло.

    просьба писать ответ только если вы проверили что ваше действие реально помогло.
     
  2. HoBleen

    HoBleen New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    77
    Открывай файлы как бинарные, а не текстовые ("b").
     
  3. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    спасибо. точно.

    интересно что именно влияет на feof если файл не текстовый.