Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > fopen, fwrite, fclose


Автор: uvsoft 2.8.2006, 13:28
Привет,

есть следующий тестовый код

Код

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int, char **) {

    FILE *pf = fopen("test.txt", "w");
    char pch[100];
    srand(time(0));
    for (int i = 0; i < 100; i++) pch[i] = rand() % 256;

    pch[50] = 0x0A;

    for (int i = 0; i < 100; i++)
        fwrite(&pch[i], 1, 1, pf);

    fclose(pf);

    return EXIT_SUCCESS;
}


при выполнении всегда там где есть запись значения 0x0A, в действительности записывается два 0x0D 0x0A.... получается не 100 байт, а 101 (ну + если rand выкинет 0x0A).... как это объяснить и исправить?

VC++ 7.1.3088

спасибо.

Автор: _hunter 2.8.2006, 13:34
в бинарном режиме открой...

Автор: uvsoft 2.8.2006, 13:41
т.е. получается я ему #10 а он еще и #13 чтобы перенос сделать? интересно.... да если в байтовом то работает нормально.... надо значит лучше доки читать) спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)