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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.71
AnDron45
1 / 1 / 0
Регистрация: 11.03.2011
Сообщений: 35
#1

Запись и чтения в файл числа - C++

21.06.2011, 22:31. Просмотров 4908. Ответов 6
Метки нет (Все метки)

MS VS 2010
C++
1
2
3
4
fstream f("numbers.dat");    //Открываю бинарный файл   
f<<12;                             //пихаю в него число     
f.seekg(0);                       //указатель в начало   
cout<<f.get();                  //Считываю число
В результате выдаёт ASCII код единицы. Нужно делать что-то с указателями, можно разъяснить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2011, 22:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись и чтения в файл числа (C++):

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

Записать числа в файл и измерить время, потраченное на запись - C++
Программа записывает в файл случайные числа(в пределах от 10^5 до 10^7) потом измеряет это время. Проблема в том, что когда начинаю...

Дана строка. Определить, представляет ли она собой запись целого числа или запись дробного числа - C++
Дана строка.Необходимо определить ,представляет ли она собой запись целого числа,записать дробного числа.Считайте ,что дробная часть...

. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа - C++
срочно помогите пожалуйста

Дан текстовый файл (файл для чтения во вложениях) с упрощённым каталогом выставки собак. - C++
ЗАДАНИЕ ПО ЭКЗАМЕНУ ПО ПРОГРАММИРОВАНИЮ НА ЯЗЫКЕ С++ (можно писать и на С. не запрещается) Всё по сабжу ниже. Дан текстовый файл...

Определить, представляет ли строка собой запись целого числа, запись дробного числа - C++
Выполните задания с использованием библиотечного класса string. Дана строка. Необходимо определить, представляет ли она собой запись...

6
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
21.06.2011, 22:49 #2
Цитата Сообщение от AnDron45 Посмотреть сообщение
MS VS 2010
C++
1
2
3
4
fstream f("numbers.dat");    //Открываю бинарный файл   
f<<12;                             //пихаю в него число     
f.seekg(0);                       //указатель в начало   
cout<<f.get();                  //Считываю число
В результате выдаёт ASCII код единицы. Нужно делать что-то с указателями, можно разъяснить?
1. Файл по умолчанию открыт как текстовый. Чтобы он был открыт как бинарный, надо явно прописать:
C++
1
fstream f("numbers.dat", ios::binary|ios::out);    //Открываю бинарный файл
2. В бинарный файл число записывается методом write()
C++
1
2
int d = 12;
f.write((char*)&d, sizeof(int));
3. Для передвижения в начало файла лучше использовать другую форму seek():
C++
1
f.seekg(0, ios::beg);
4. Для ввода из бинарного файла надо использовать метод read():
C++
1
f.read((char*)&d, sizeof(int));
1
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,474
21.06.2011, 22:50 #3
так что ли?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
using namespace std;
 
int main () {
 fstream f("numbers.dat");    //Открываю бинарный файл   
 f<<12;                             //пихаю в него число         
 f.seekg(0);                       //указатель в начало   
 int k;
 f>> k;
 cout<< k;  
 getchar ();
 return 0;
}
0
AnDron45
1 / 1 / 0
Регистрация: 11.03.2011
Сообщений: 35
21.06.2011, 23:20  [ТС] #4
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 "stdafx.h"
#include "iostream"
#include "istream"
#include "fstream"
#include "conio.h"
#include <time.h>
#include <stdlib.h>
#include <string>
using namespace std;
 
int c,i;
 
void main()
{
    fstream f("numbers.dat",ios::binary|ios::out);
    
    c=15;
    f.write((char*)&c, sizeof(int));
    c=5;
    f.write((char*)&c, sizeof(int));
    f.seekg(0, ios::beg);
    f.read((char*)&c, sizeof(int));
    cout<<c; //выдаёт 5
    f.read((char*)&c, sizeof(int));
    cout<<c;  //выдаёт 5
            
    getch();
}
То ли записи, то ли считывания не происходит
0
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,474
21.06.2011, 23:39 #5
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
#include "iostream"
#include "istream"
#include "fstream"
#include "conio.h"
#include <time.h>
#include <stdlib.h>
#include <string>
using namespace std;
 
int c,i;
 
int main()
{
        fstream f("numbers.dat",ios::binary|ios::out);
        
        c=15;
        f.write((char*)&c, sizeof(int));
        c=5;
        f.write((char*)&c, sizeof(int));
        f.close();
        f.open("numbers.dat",ios::binary|ios::in);
        f.seekg(0, ios::beg);
        f.read((char*)&c, sizeof(int));
        cout<<c; //âûäГ*ВёГІ 5
        f.read((char*)&c, sizeof(int));
        cout<<c;  //âûäГ*ВёГІ 5
                        
        getch();
}
...И да, скачай где-нибудь hex- редактор; программа не сработала- встал вопрос, а записалось ли в файл? Открыл в hex-редакторе и посмотрел, всё вперёд.
1
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
21.06.2011, 23:45 #6
Цитата Сообщение от AnDron45 Посмотреть сообщение
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
#include "stdafx.h"        // создал не пустой проест
 
// -- остальное - не нужно --
#include <iostream>
#include <fstream>
using namespace std;
 
int c,i;
 
int main()
{       // -- нужно не только для записи, но и для чтения открывать -- !!
    fstream f("numbers.dat",ios::binary|ios::out|ios::in); 
    
    c=15;
    f.write((char*)&c, sizeof(int));
    c=5;
    f.write((char*)&c, sizeof(int));
    f.seekg(0, ios::beg);
    f.read((char*)&c, sizeof(int));
    cout<<c; //выдаёт 5
    f.read((char*)&c, sizeof(int));
    cout<<c;  //выдаёт 5
    system("pause");
return 0;       
    //getch();   -- это не нужно
}
То ли записи, то ли считывания не происходит
Естественно, читать не будет. Открыл-то только для записи. А кто режим для чтения указывать будет?
Попробуй с моими изменениями...
1
AnDron45
1 / 1 / 0
Регистрация: 11.03.2011
Сообщений: 35
21.06.2011, 23:51  [ТС] #7
ValeryLaptev, kravam, огромное вам спасибо за помощь!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2011, 23:51
Привет! Вот еще темы с ответами:

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

Запись в бинарный файл в бинарном режиме: будут ли числа записаны в двоичной системе счисления? - C++
Если я записываю случайное четырехзначное число в бинарный файл, открываю его в бинарном режиме, то будут ли те числа записаны в двоичной...

Организовать запись и чтения из файла для 3 программ - C++
Добрый вечер.Помогите пожалуйста организовать запись и чтения из файла для 3 программ,я там где-как написал что знаю,но все равно не могу...

Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие в файл F. Числа в файле G должны следовать - C++
Помогите доздать с++) вот задание: Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие ...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
21.06.2011, 23:51
Ответ Создать тему
Опции темы

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