Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Amir_05_05
0 / 0 / 1
Регистрация: 06.06.2015
Сообщений: 240
#1

Как работают функции fwrite и fread - C++

22.06.2015, 16:09. Просмотров 632. Ответов 13
Метки нет (Все метки)

объясните мне пожалуйста функции fwrite и fread.Буду очень благодарен!
http://www.cyberforum.ru/cpp-beginners/thread945742.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2015, 16:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как работают функции fwrite и fread (C++):

Аналог С функции fread и fwrite в С++
Здравствуйте, какие есть аналоги функций fread() fwrite в С++?

как работает fwrite() и fread() со структурой?
Добрый день, у меня вопрос: 1) Каким образом я могу записать структуру в файл...

fwrite\fread: чтение и запись в бинарные файлы
Добрый день. Пытаюсь разобратся с чтением и записью в бинарные файлы.. в общем...

Параметры функции fread
Вот программа: _____________________ #include <iostream> #include <stdio.h>...

Аналог функции fread С++
Проблема собственно вот в чем, У меня есть структура некой базы данных, и...

13
Kuzia domovenok
2208 / 1977 / 440
Регистрация: 25.03.2012
Сообщений: 6,928
Записей в блоге: 1
22.06.2015, 16:10 #2
http://www.cplusplus.com/reference/cstdio/fwrite/
http://www.cplusplus.com/reference/cstdio/fread/
1
jonson
234 / 207 / 84
Регистрация: 18.03.2010
Сообщений: 750
22.06.2015, 16:11 #3
имена функций не на что не намекают?
1
Amir_05_05
0 / 0 / 1
Регистрация: 06.06.2015
Сообщений: 240
22.06.2015, 21:08  [ТС] #4
спасибо за "подробный" ответ
0
lss
926 / 855 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
22.06.2015, 21:16 #5
Цитата Сообщение от Amir_05_05 Посмотреть сообщение
спасибо за "подробный" ответ
А что ты хотел? Пересказ учебника?

Добавлено через 57 секунд
Ты как будто в лесу живёшь, информации взять негде...
2
Amir_05_05
0 / 0 / 1
Регистрация: 06.06.2015
Сообщений: 240
23.06.2015, 09:38  [ТС] #6
информацию то я нашёл,но не понял её.Поэтому прищёл сюда с просьбой объяснить мне.И ещё:можно ли считывать в переменную типа string?
тоесть не так:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <cstdio>
#include <string>
int main (){
  char y[100];
  FILE * file;
  file=fopen("file.txt", "r");
  fread(y,1,sizeof(y),file);
  fclose (file);
}
а так:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <cstdio>
#include <string>
int main (){
  string y;
  FILE * file;
  file=fopen("file.txt", "r");
  fread(y,1,sizeof(y),file);
  fclose (file);
}
0
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
23.06.2015, 09:40 #7
Цитата Сообщение от Amir_05_05 Посмотреть сообщение
И ещё:можно ли считывать в переменную типа string?
Запустите код и узнаете.
з.ы. строку неплохо было бы вывести в обоих случаях, нагляднее будет.
1
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
23.06.2015, 10:35 #8
Цитата Сообщение от Amir_05_05 Посмотреть сообщение
И ещё:можно ли считывать в переменную типа string?
нет.
1
Tulosba
:)
Эксперт С++
4746 / 3240 / 496
Регистрация: 19.02.2013
Сообщений: 9,046
23.06.2015, 11:27 #9
Цитата Сообщение от Amir_05_05 Посмотреть сообщение
:можно ли считывать в переменную типа string?
fread/fwrite работают с сырыми байтами, т.е. их можно использовать только с так называемыми POD (Plain Old Data) типами.
А чтобы создать объект типа string нужно вызвать его конструктор. Прямая запись по адресу переменной std::string ни к чему хорошему не приведет. Самый простой способ в данном случае, сохранять/читать обычные (сишные) строки, и на их основании создавать std::string (при чтении из файла) или получать данные через метод c_str().
2
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
23.06.2015, 11:51 #10
Цитата Сообщение от Amir_05_05 Посмотреть сообщение
можно ли считывать в переменную типа string
какой-нибудь страх-бабах вроде (сделан на потоках можно переправить на FILE)
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
32
33
34
35
36
37
38
39
40
41
42
43
//------------------------------------------------------------------------------
void move_to_next_data(std::istream &is, const char separator)
{
    while (true)
    {
        int c = is.peek();
        if (c == EOF) break;
        is.ignore();
 
        if (c == separator) break;
    }
}
//------------------------------------------------------------------------------
bool read_bin
(
    std::istream &is, std::string * const value,
    const char separator, const unsigned long max_length
)
{
    value->clear();
 
    unsigned long p = 0;
 
    while (true)
    {
        int c = is.peek();
        if (c == EOF) break;
        is.ignore();
 
        if (c == separator) break;
 
        p++;
        if (p > max_length)
        {
            move_to_next_data(is, separator);
            break;
        }
 
        *value += c;
    }
 
    return !is.fail();
}
1
lss
926 / 855 / 355
Регистрация: 10.10.2012
Сообщений: 2,705
23.06.2015, 18:22 #11
Цитата Сообщение от Amir_05_05 Посмотреть сообщение
информацию то я нашёл,но не понял её.Поэтому прищёл сюда с просьбой объяснить мне.
Тогда нужно конкретно спрашиваать, что не понял (как про string), а не так:
Цитата Сообщение от Amir_05_05 Посмотреть сообщение
объясните мне пожалуйста функции fwrite и fread.
1
Amir_05_05
0 / 0 / 1
Регистрация: 06.06.2015
Сообщений: 240
24.06.2015, 11:25  [ТС] #12
с fwrite и fread разобрался.но когда записываю в string,компилятор выдаёт ошибкую и я придумал вот что:fread записывает в char один символ,потом этот символ объединяется с string,с помощью goto операция повторяется и получается что я записываю в string.Помогите мне это осуществить!Буду благодарен
0
Kuzia domovenok
2208 / 1977 / 440
Регистрация: 25.03.2012
Сообщений: 6,928
Записей в блоге: 1
24.06.2015, 11:52 #13
Amir_05_05,
C++
1
2
3
4
    std::ifstream t("input.txt");
    std::string line;
    std::getline(t, line);
    std::cout<<line;
1
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
24.06.2015, 13:33 #14
Цитата Сообщение от Amir_05_05 Посмотреть сообщение
Буду благодарен
тяжело говорить с людьми которые не читаю что им пишут..
1
24.06.2015, 13:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2015, 13:33
Привет! Вот еще темы с решениями:

Fread(), fseek(), fwrite() - Переписка байтов
Всем привет. Такой вопрос. Есть задача пройтись по бинарному файлу с...

Объясните работу функции fread()
Возникла проблема при чтении файла по частям. Вообщем задача состоит в том что...

Бинарное чтение из файла с пoмощью функции fread()
Подскажите, пожалуйста, почему feof() может возвращать конец файла далеко до...

как работают эти 4 функции
Подскажите как работают эти 4 функции CTime CTime::operator ++() CTime...


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

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

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