С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rinalast
1 / 1 / 0
Регистрация: 04.10.2011
Сообщений: 92
#1

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

18.04.2013, 16:32. Просмотров 624. Ответов 13
Метки нет (Все метки)

Напечатать все элементы типизированного файла, каждая запись которого - число.
Рассмотрим два варианты:
1) известно, что в существующем файле записаны 10 чисел.
2) размер существующего файла не известен.

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

Напечатать все элементы типизированного файла - C++
Напечатать все элементы типизированного файла, каждый элемент файла — отдельное слово. Рассмотреть два варианта: а) известно, что в...

С помощью очереди за один просмотр файла напечатать элементы файла в заданном порядке - C++
Сформировать файл из вещественных чисел и с помощью очереди за один просмотр файла напечатать элементы файла в следующем порядке: сначала...

Бинарные деревья. Напечатать все элементы дерева Т по уровням - C++
Всем привет. Помогите написать программу или хотя бы функцию, условие следующее: Напечатать все элементы дерева Т по уровням, сначала...

Напечатать все не отрицательные и не превышающие 100 элементы массива - C++
Дан массив. Напечатать: a) все не отрицательные элементы б) все элементы, не превышающие числа 100 Начало есть, нужен только...

Напечатать все элементы, следующие за последним элементом, оканчивающимся цифрой 7 - C++
Дан массив целых чисел. Напечатать все элементы, следующие за последним элементом, оканчивающимся цифрой 7. Если элементов, оканчивающихся...

Дан массив. Напечатать все элементы не превыщающие числа 100 - C++
Дан массив. Напечатать все элементы не превыщающие числа 100 #include "stdafx.h" #include<iostream> #include<conio.h> using...

13
yoghurt92
374 / 345 / 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;
}
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
18.04.2013, 18:04 #3
yoghurt92, не помешает перед выводом значения проверку сделать:
C++
1
if( !file.fail() )
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
18.04.2013, 18:14 #4
Tulosba, ну я накидал по быстрому, да, вы правы, можно еще просто сделать

C++
1
file.clear();
чтобы сбросить флаг eofbit или badbit если был обнаружен конец файла
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
18.04.2013, 18:18 #5
yoghurt92, а вообще, мне кажется ТС имел в виду бинарные файлы, говоря про "элементы типизированного файла".
1
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
18.04.2013, 18:20 #6
Tulosba, может быть, ну пока ничего не сказал, если надо переделаю
0
rinalast
1 / 1 / 0
Регистрация: 04.10.2011
Сообщений: 92
18.04.2013, 18:22  [ТС] #7
да я имел ввиду двоичные бинарные файлы
0
yoghurt92
374 / 345 / 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;
}
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
18.04.2013, 21:55 #9
yoghurt92, а как создать файл, который сможет скушать эта программа? Мне кажется без read/write тут не обойтись.
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
18.04.2013, 22:10 #10
Tulosba, я ждал этого вопроса, даже тут обсуждалось, можно использовать fin >> value, а можно и read/write
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
18.04.2013, 22:30 #11
yoghurt92, можете привести код для создания файла, чтобы потом его прочитать кодом из 8 сообщения?
0
yoghurt92
374 / 345 / 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;
}
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
19.04.2013, 04:52 #13
yoghurt92, тогда я сообщение #10 совсем не понял.
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
19.04.2013, 08:20 #14
Tulosba, ну если файл создан и там что-то есть, то можно прочитать его как бинарный, но записать не получиться, плюс если выводить через read то вывод будет не адекватный И если именно записывать и читать, то да, только raed/write Я просто показал как можно прочитать данные в бинарном режиме, вы были абсолютно правы когда сделали замечание
0
19.04.2013, 08:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2013, 08:20
Привет! Вот еще темы с ответами:

Имеется типизированный файл с числами, напечатать все его элементы большие числа a с++ - C++
Имеется типизированный файл с числами. Напечатать все его элементы большие числа a.

Удвоить размер файла, записав в конец файла все его исходные элементы - C++
Дан файл целых чисел. Удвоить его размер, записав в конец файла все его исходные элементы (в том же порядке). Помогите пожалуйста!!!!

Напечатать все строки файла, длина которых равна заданному значению - C++
В каждой теме должна быть только одна задача! Файлы: I. Работа с текстовыми файлами. Дан текстовый файл. Напечатать все строки, длина...

Используя очередь, за один просмотр файла напечатать все числа, удовлетворяющие условию - C++
Дан файл из вещественных чисел. Используя очередь, за один просмотр файла напечатать сначала все числа, меньшие a, затем все числа из...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.