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

Работа с текстовым файлом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировкой С++ или Ошибка. http://www.cyberforum.ru/cpp-beginners/thread137392.html
написал программу по заданию( необходимо через указатели ) но после проверки сортировки нету. Код Записан на С++ #include <iostream.h> #include <conio.h> #include <string.h> #pragma argsused...
C++ Операция mod() Подскажите, pls, как осуществить операцию m mod n (вычисление остатка) не используя операцию деления в процессе вычисления? http://www.cyberforum.ru/cpp-beginners/thread137390.html
C++ Преобразовать double в string
Подскажите как преобразовать double в string ?? Нашел что то похожее при помощи ostringstream , но там не совсем то.. Преобразование string в double реализовал следующим образом: double...
Вычислить сумму элементов , pасположенных на главной диагонали и выше ее C++
Дана действительная квадpатная матpица поpядка n (n<=8). Вычислить сумму тех ее элементов , pасположенных на главной диагонали и выше ее,котоpые пpевосходят по величине все элементы, pасположенные...
C++ Найти сумму чисел, кратную трем. http://www.cyberforum.ru/cpp-beginners/thread137359.html
найти сумму i(Е сверху N, снизу i=1 ) кратно трём!
C++ Работа с Массивами: реализация списка через массив? В общем: Можно ли записать в ячейку массива больше одного символа? Можно ли с помощью массива сделать к примеру список дел, т.е. я пишу "Вымыть посуду", "Помыть пол" и эта информация вводится в... подробнее

Показать сообщение отдельно
gluck-a
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 23

Работа с текстовым файлом - C++

29.05.2010, 02:12. Просмотров 368. Ответов 0
Метки (Все метки)

Люди добрые и злые, помогите пожалуйста! Пишу курсовую, так сложилось, что в с++ не шарю, а для сдачи нужно))))У меня происходит ошибка, точнее не понятное зацикливание (мне не понятное) при чтении с файла
вся программа выглядит вот так и даж запускается(пока сырая и функции делают пока что не то что им пологается)) при условие что файл BD.dat пустой)
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <iostream>
#include <stdio.h>
#include <windows.h>
using namespace std;
 
struct clientData {
    int ID;
    char lastName[15];
    char firstName[10];
    double balance;
};
 
void Create_report(void);
void Add(void);
void Delete(void);
int enterChoise(void);
 
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
    int choise;
    int ID;
    char lastName[15];
    char firstName[10];
    double balance;
    FILE *cfPtr;
    cfPtr=fopen("d:\BD.dat","r");
        printf("%-10s %-15s %-20s% s\n", "ID","Фамилия","Имя","Balance");
        fscanf(cfPtr,"%d%s%s%lf",&ID,lastName,firstName,&balance);
        while(!feof(cfPtr))
        {
        printf("%-10d %-15s %-20s %.2lf\n",ID, lastName ,firstName, balance );
        fscanf(cfPtr,"%d%s%s%lf",&ID,lastName,firstName,&balance);
        }
        fclose(cfPtr);
 
    while( (choise = enterChoise()) != 4) {
        switch ( choise ) {
            case 1:
                Create_report();
                break;
            case 2:
                Add();
                break;
            case 3:
                Delete();
                break;
        }
    }
    return 0;
}
 
void Create_report(void)
{
    FILE *cfPtr;
    int i;
    struct clientData blankClient = { 0, "", "", 0.0};
 
    if((cfPtr = fopen("d:\BD.dat", "w")) == NULL)
        printf("Файл не найден, или не доступен\n");
    else {
        for(i = 1; i <= 15; i++)
            fwrite(&blankClient,
                    sizeof(struct clientData), 1, cfPtr);
        fclose(cfPtr);
    }
}
 
void Add(void)
{
    FILE *cfPtr;
    struct clientData client = { 0, "", "", 0.0};
 
 
 
 
 
 
    if((cfPtr = fopen("d:\BD.dat", "r+")) == NULL)
        printf("Файл не найден, или не доступен\n");
    else {
        printf("ВВедите номар ID" " (от 1 до 100, 0 для выхода в меню)\n?");
        
        scanf("%d", &client.ID);
 
        while( client.ID != 0){
            printf("Введите Фамилию, Имя и balance\n?");
            fscanf(stdin, "%s%s%lf", client.lastName,
                client.firstName, &client.balance);
            fseek(cfPtr, (client.ID - 1) * sizeof(struct clientData), SEEK_SET);
            fwrite(&client, sizeof(struct clientData), 1,cfPtr);
            printf("Введите ID номер\n?");
            scanf("%d", &client.ID);
        }
        fclose(cfPtr);
    }
}
 
void Delete(void)
{
    FILE *cfPtr;
    struct clientData client = { 0, "", "", 0.0};
 
    if((cfPtr = fopen("d:\BD.datt", "r")) == NULL)
        printf("Файл не найден, или не доступен\n");
    else {
        printf("%-6s%-16s%-11s%10s\n", "Acct", "Last Name",
                "First Name", "Balance");
 
        while(!feof(cfPtr)) 
            fread(&client, sizeof( struct clientData), 1, cfPtr);
            if (client.ID != 0)
                printf("%-6d%-16s%-11s%10.2f\n",
                client.ID, client.lastName,
                client.firstName, client.balance);
        }
        fclose(cfPtr);
    }
    
 
 
int enterChoise(void)
{
    int menuChoise;
 
    printf("\nГлавное меню\n"
        "1 - Создать отчет по зарплатам\n"
        "2 - добавить запись\n"
        "3 - удалить запись\n"
        "4 - выход\n?");
    scanf("%d", &menuChoise);
    return menuChoise;
}
а проблема тут:
C++
1
2
3
4
5
6
7
8
9
10
FILE *cfPtr;
    cfPtr=fopen("d:\BD.dat","r");
        printf("%-10s %-15s %-20s% s\n", "ID","Фамилия","Имя","Balance");
        fscanf(cfPtr,"%d%s%s%lf",&ID,lastName,firstName,&balance);
        while(!feof(cfPtr))
        {
        printf("%-10d %-15s %-20s %.2lf\n",ID, lastName ,firstName, balance );
        fscanf(cfPtr,"%d%s%s%lf",&ID,lastName,firstName,&balance);
        }
        fclose(cfPtr);
а клин выглядит вооон как на скрине:
0
Миниатюры
Работа с текстовым файлом  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru