Чтение из файла с++

Рейтинг: 0Ответов: 1Опубликовано: 21.02.2015

Здравствуйте!

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

{
    //создание массива с контрольными числами

    char контрольный_символ[1024];
    int randomDigits[1024] = {};
    srand(time(NULL));

    for (int i = 0; i < 1024; i++)
    {
        randomDigits[i] = rand() % 1000;
        // запись случайного числа
        контрольный_символ[i] = randomDigits[i];
        printf("%#.02x ", контрольный_символ[i]);
    }
    std::cout << " " << std::endl;
    std::cout << " " << std::endl;

    //запись в файл
    char a[] = "123.DAT";
    std::ofstream book_file(a);
    for (int s = 0; s < 1024; ++s)
    {
        book_file << контрольный_символ[s];
        printf("%#.02x ", контрольный_символ[s]);
    }
    book_file.close();

    char asd[1024] = { 0 };
    std::cout << " " << std::endl;
    std::cout << " " << std::endl;
    //чтение из файла
    std::ifstream input_file(a);
    input_file >> asd;
    input_file.close();
    for (int a = 0; a < 1024; ++a)
    {
        printf("%#.02x ", asd[a]);
    }

    system("pause");
    return 0;
}

Ответы

▲ 1

Возможно, не хватает размера символьного массива, ну или из-за того, что оператор чтения из потока ">>" читает до пробела.