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

Подскажите отладить запись в файл и считывание с него - C++

Восстановить пароль Регистрация
 
cxemuch205
 Аватар для cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
17.03.2013, 22:57     Подскажите отладить запись в файл и считывание с него #1
Я написал программу, она работает с использованием fprintf() и fscanf(), но задание сделать с fwrite() и fread() - вот с ними у меня выводит бред в файл тоже записывает бред..
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
44
45
46
47
48
49
50
51
#include <stdio.h>
#include <locale.h> //Чтоб Visual понимал русские символы
#include <string.h>
#include <conio.h>
 
struct SchoolBoys{  //Определение структуры
         char num[10];
         char name[50];
         int SchoolNumber;
         char Class[20];
         double SBAtestat;
         char LikeSubject[40];
         char NoLikeSubject[40];};
 
int main()
{
    setlocale(LC_ALL, "RUS"); //Установка языка вывода
    int i; char r[5]="\n";
    FILE *f; //Объявление указателя на файл
    f = fopen("info.txt", "w"); //открытие файла для записи
    struct SchoolBoys SchoolBoy={"#1", "Ivanov_Denis", 22, "11[A]", 189.7, "Fizra", "Music"}, outInfo;
 
        fwrite(SchoolBoy.num, strlen(SchoolBoy.num), 1, f);
        fwrite(SchoolBoy.name, strlen(SchoolBoy.name),1, f);
        fwrite(&SchoolBoy.SchoolNumber, sizeof(SchoolBoy.SchoolNumber), 1, f);
        fwrite(SchoolBoy.Class, strlen(SchoolBoy.Class), 1, f);
        fwrite(&SchoolBoy.SBAtestat, sizeof(SchoolBoy.SBAtestat), 1, f);
        fwrite(SchoolBoy.LikeSubject, strlen(SchoolBoy.LikeSubject), 1, f);
        fwrite(SchoolBoy.NoLikeSubject, strlen(SchoolBoy.NoLikeSubject), 1, f);
    fclose(f); //Закрыл файл
 
    f = fopen("info.txt", "r"); //Открытие файла для считывания информации в новую структуру
 
    fread(outInfo.num, strlen(SchoolBoy.num), 1, f);
    fread(outInfo.name, strlen(SchoolBoy.name), 1, f);
    fread(&outInfo.SchoolNumber, sizeof(SchoolBoy.SchoolNumber), 1, f);
    fread(outInfo.Class, strlen(SchoolBoy.Class), 1, f);
    fread(&outInfo.SBAtestat, sizeof(SchoolBoy.SBAtestat), 1, f);
    fread(outInfo.LikeSubject, strlen(SchoolBoy.LikeSubject), 1, f);
    fread(outInfo.NoLikeSubject, strlen(SchoolBoy.NoLikeSubject), 1, f);
    fclose(f);
 
        printf("\Товар[%s]:\n", outInfo.num); //Вывод данных из новой структуры
        printf("\tИмя: ");puts(outInfo.name);
        printf("\tШкола номер: %d\n", outInfo.SchoolNumber);
        printf("\tКласс: %s\n", outInfo.Class);
        printf("\tСредний бал атестата: %3.1f\n", outInfo.SBAtestat);
        printf("\tЛюбимый предмет: %s\n", outInfo.LikeSubject);
        printf("\tНе любимый предмет: %s\n", outInfo.NoLikeSubject);
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2013, 22:57     Подскажите отладить запись в файл и считывание с него
Посмотрите здесь:

Считывание и запись матрицы из/в файл C++
Считывание и запись в файл C++
C++ Считывание и запись в файл
C++ считывание и запись в файл
C++ Считывание и запись в файл
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nati94
2 / 2 / 0
Регистрация: 18.02.2013
Сообщений: 29
17.03.2013, 23:28     Подскажите отладить запись в файл и считывание с него #2
fread и fwrite работает только с бинарными файлами
f = fopen("info.dat", "a+b"); // для записи
a- чтобы записывало в конец файла
f = fopen("info.dat", "rb"); //для чтения
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2013, 23:51     Подскажите отладить запись в файл и считывание с него #3
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
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h>
#include <locale.h> //Чтоб Visual понимал русские символы
#include <string.h>
#include <conio.h>
 
struct SchoolBoys{  //Определение структуры
         char num[10];
         char name[50];
         int SchoolNumber;
         char Class[20];
         double SBAtestat;
         char LikeSubject[40];
         char NoLikeSubject[40];};
 
int main()
{
    setlocale(LC_ALL, "RUS"); //Установка языка вывода
    int i; char r[5]="\n";
    FILE *f; //Объявление указателя на файл
    f = fopen("info.txt", "wb"); //открытие файла для записи
    struct SchoolBoys SchoolBoy={"#1", "Ivanov_Denis", 22, "11[A]", 189.7, "Fizra", "Music"}, outInfo;
 
        fwrite(SchoolBoy.num, strlen(SchoolBoy.num) + 1, 1, f);
        fwrite(SchoolBoy.name, strlen(SchoolBoy.name) + 1, 1, f);
        fwrite(&SchoolBoy.SchoolNumber, sizeof(SchoolBoy.SchoolNumber), 1, f);
        fwrite(SchoolBoy.Class, strlen(SchoolBoy.Class) + 1, 1, f);
        fwrite(&SchoolBoy.SBAtestat, sizeof(SchoolBoy.SBAtestat), 1, f);
        fwrite(SchoolBoy.LikeSubject, strlen(SchoolBoy.LikeSubject) + 1, 1, f);
        fwrite(SchoolBoy.NoLikeSubject, strlen(SchoolBoy.NoLikeSubject) + 1, 1, f);
        
        fclose(f); //Закрыл файл
 
    f = fopen("info.txt", "rb"); //Открытие файла для считывания информации в новую структуру
 
    fread(outInfo.num, strlen(SchoolBoy.num) + 1, 1, f);
    fread(outInfo.name, strlen(SchoolBoy.name) + 1, 1, f);
    fread(&outInfo.SchoolNumber, sizeof(SchoolBoy.SchoolNumber), 1, f);
    fread(outInfo.Class, strlen(SchoolBoy.Class) + 1, 1, f);
    fread(&outInfo.SBAtestat, sizeof(SchoolBoy.SBAtestat), 1, f);
    fread(outInfo.LikeSubject, strlen(SchoolBoy.LikeSubject) + 1, 1, f);
    fread(outInfo.NoLikeSubject, strlen(SchoolBoy.NoLikeSubject) + 1, 1, f);
    fclose(f);
 
        printf("\Товар[%s]:\n", outInfo.num); //Вывод данных из новой структуры
        printf("\tИмя: ");puts(outInfo.name);
        printf("\tШкола номер: %d\n", outInfo.SchoolNumber);
        printf("\tКласс: %s\n", outInfo.Class);
        printf("\tСредний бал атестата: %3.1f\n", outInfo.SBAtestat);
        printf("\tЛюбимый предмет: %s\n", outInfo.LikeSubject);
        printf("\tНе любимый предмет: %s\n", outInfo.NoLikeSubject);
    
    getch();
    return 0;
}
cxemuch205
 Аватар для cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
17.03.2013, 23:59  [ТС]     Подскажите отладить запись в файл и считывание с него #4
Можно сказать что функции fread() and fwrite() - низкоуровневые?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.03.2013, 00:13     Подскажите отладить запись в файл и считывание с него #5
Цитата Сообщение от cxemuch205 Посмотреть сообщение
Можно сказать что функции fread() and fwrite() - низкоуровневые?
Такого определения не встречал. Неформатируемое (бинарное) чтение/запись. Просто читают/записывают из памяти/в память байты, без какой-либо обработки.
Yandex
Объявления
18.03.2013, 00:13     Подскажите отладить запись в файл и считывание с него
Ответ Создать тему
Опции темы

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