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

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

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

объясните мне пожалуйста функции fwrite и fread.Буду очень благодарен!

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2015, 16:09
Ответы с готовыми решениями:

Функции fread() и fwrite()
Меня интересует что это за "счётчик" в этих функциях fwrite( massiv, *size_int...

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

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

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

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

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

Добавлено через 57 секунд
Ты как будто в лесу живёшь, информации взять негде...
2
Amir_05_05
0 / 0 / 0
Регистрация: 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
Тамика
Котовчанин
928 / 469 / 199
Регистрация: 16.02.2010
Сообщений: 3,304
Записей в блоге: 29
23.06.2015, 09:40 7
Цитата Сообщение от Amir_05_05 Посмотреть сообщение
И ещё:можно ли считывать в переменную типа string?
Запустите код и узнаете.
з.ы. строку неплохо было бы вывести в обоих случаях, нагляднее будет.
1
vxg
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,002
23.06.2015, 10:35 8
Цитата Сообщение от Amir_05_05 Посмотреть сообщение
И ещё:можно ли считывать в переменную типа string?
нет.
1
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 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
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,002
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
930 / 859 / 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 / 0
Регистрация: 06.06.2015
Сообщений: 240
24.06.2015, 11:25  [ТС] 12
с fwrite и fread разобрался.но когда записываю в string,компилятор выдаёт ошибкую и я придумал вот что:fread записывает в char один символ,потом этот символ объединяется с string,с помощью goto операция повторяется и получается что я записываю в string.Помогите мне это осуществить!Буду благодарен
0
Kuzia domovenok
2443 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,749
Записей в блоге: 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
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,002
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 С++
Проблема собственно вот в чем, У меня есть структура некой базы данных, и...

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

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


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

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

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