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

Файлы:Напечатать все элементы типизированного файла - C++

Восстановить пароль Регистрация
 
rinalast
1 / 1 / 0
Регистрация: 04.10.2011
Сообщений: 92
18.04.2013, 16:32     Файлы:Напечатать все элементы типизированного файла #1
Напечатать все элементы типизированного файла, каждая запись которого - число.
Рассмотрим два варианты:
1) известно, что в существующем файле записаны 10 чисел.
2) размер существующего файла не известен.

Добавлено через 1 час 5 минут
Люди ну помогите пожалуйста!Очень прошу!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 16:32     Файлы:Напечатать все элементы типизированного файла
Посмотрите здесь:

C++ Напечатать все элементы следующие за последним элементом оканчивающимся цифрой "7"
Напечатать все элементы, следующие за последним элементом, оканчивающимся цифрой 7 C++
C++ с помощью очереди за один просмотр файла напечатать элементы файла в заданном порядке
Удвоить размер файла, записав в конец файла все его исходные элементы C++
Дан массив. Напечатать все элементы не превыщающие числа 100 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
18.04.2013, 17:52     Файлы:Напечатать все элементы типизированного файла #2
rinalast, не знаю на счет второго, но вроде так можно

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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    ifstream file("input.txt");
 
    int value;
 
    /*случай для 10 чисел*/
    for(int i = 0; i < 10; ++i){
        file >> value;
        cout << value << ' ';
    }
    
    cout << "\n\n";
 
    /*случай когда размер не известен*/
    file.seekg(0);                              //возврат к началу файла
    while(!file.eof()){
        file >> value;
        cout << value << ' ';
    }
 
    cout << "\n\n";
    return 0;
}
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
18.04.2013, 18:04     Файлы:Напечатать все элементы типизированного файла #3
yoghurt92, не помешает перед выводом значения проверку сделать:
C++
1
if( !file.fail() )
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
18.04.2013, 18:14     Файлы:Напечатать все элементы типизированного файла #4
Tulosba, ну я накидал по быстрому, да, вы правы, можно еще просто сделать

C++
1
file.clear();
чтобы сбросить флаг eofbit или badbit если был обнаружен конец файла
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
18.04.2013, 18:18     Файлы:Напечатать все элементы типизированного файла #5
yoghurt92, а вообще, мне кажется ТС имел в виду бинарные файлы, говоря про "элементы типизированного файла".
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
18.04.2013, 18:20     Файлы:Напечатать все элементы типизированного файла #6
Tulosba, может быть, ну пока ничего не сказал, если надо переделаю
rinalast
1 / 1 / 0
Регистрация: 04.10.2011
Сообщений: 92
18.04.2013, 18:22  [ТС]     Файлы:Напечатать все элементы типизированного файла #7
да я имел ввиду двоичные бинарные файлы
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
18.04.2013, 18:53     Файлы:Напечатать все элементы типизированного файла #8
rinalast,

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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    ifstream file("input.txt", ios::binary | ios::in);
    int value;
 
    /*случай для 10 чисел*/
    for(int i = 0; i < 10; ++i){
        file >> value;
        cout << value << ' ';
    }
    
    cout << "\n\n";
 
    /*случай когда размер не известен*/
    file.clear();
    file.seekg(0);                              //возврат к началу файла
    while(!file.eof()){
        file >> value;
        cout << value << ' ';
    }
 
    cout << "\n\n";
    return 0;
}
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
18.04.2013, 21:55     Файлы:Напечатать все элементы типизированного файла #9
yoghurt92, а как создать файл, который сможет скушать эта программа? Мне кажется без read/write тут не обойтись.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
18.04.2013, 22:10     Файлы:Напечатать все элементы типизированного файла #10
Tulosba, я ждал этого вопроса, даже тут обсуждалось, можно использовать fin >> value, а можно и read/write
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
18.04.2013, 22:30     Файлы:Напечатать все элементы типизированного файла #11
yoghurt92, можете привести код для создания файла, чтобы потом его прочитать кодом из 8 сообщения?
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
18.04.2013, 22:43     Файлы:Напечатать все элементы типизированного файла #12
Tulosba, нет, конечно только так

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
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{    
     /* открываем файл для записи */
    ofstream ofile("input.txt", std::ios::binary);
    if(ofile.is_open())
    { 
        for(int i = 0; i < 20; i++)   
            ofile.write((char *)&i, sizeof(int));  
        ofile.close();
    }
 
    int value;
    ifstream ifile("input.txt", ios::binary);
    for(int i = 0; i < 10; ++i){
        ifile.read((char *)&value , sizeof(int));
            cout << value  << ' ';
    }
 
    cout << "\n\n";
    ifile.clear();
    ifile.seekg(0);
    while(ifile.read((char *)&value , sizeof(int))) 
        cout << value  << ' ';
    cout << '\n'; 
 
    return 0;
}
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
19.04.2013, 04:52     Файлы:Напечатать все элементы типизированного файла #13
yoghurt92, тогда я сообщение #10 совсем не понял.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2013, 08:20     Файлы:Напечатать все элементы типизированного файла
Еще ссылки по теме:

C++ Бинарные деревья. Напечатать все элементы дерева Т по уровням
C++ Напечатать все не отрицательные и не превышающие 100 элементы массива
Имеется типизированный файл с числами, напечатать все его элементы большие числа a с++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
19.04.2013, 08:20     Файлы:Напечатать все элементы типизированного файла #14
Tulosba, ну если файл создан и там что-то есть, то можно прочитать его как бинарный, но записать не получиться, плюс если выводить через read то вывод будет не адекватный И если именно записывать и читать, то да, только raed/write Я просто показал как можно прочитать данные в бинарном режиме, вы были абсолютно правы когда сделали замечание
Yandex
Объявления
19.04.2013, 08:20     Файлы:Напечатать все элементы типизированного файла
Ответ Создать тему
Опции темы

Текущее время: 13:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru