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

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

Войти
Регистрация
Восстановить пароль
 
gluck-a
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 23
#1

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

29.05.2010, 02:12. Просмотров 362. Ответов 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);
а клин выглядит вооон как на скрине:
Миниатюры
Работа с текстовым файлом  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2010, 02:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с текстовым файлом (C++):

Работа с текстовым файлом - C++
Здравствуйте. Имеется текстовый файл, в котором известно количество очков, набранных каждой из 19 команд-участниц первенства по футболу....

Работа с текстовым файлом - C++
Добрый вечер, помогите пожалуйста с решением следущей проблемы: Есть текстовый файл, в котором находится 40 000 различных английских...

Работа с текстовым файлом - C++
Всем доброго вечера! Имеется текстовый файл в котором информация занесена таким образом -Название государства, Численность, Плотность....

Работа с текстовым файлом - C++
Создать текст файл с произвольной инфой. Организовать просмотр содержиммого файла.Организовать чтение и обработку данных из файла в...

Работа с текстовым файлом - C++
Прошу помощи. Должно быть консольное приложение. Описываю последовательность действий. Текстовый файл 1234.txt розмещен в каталоге с...

Работа с текстовым файлом - C++
Здравствуйте все! Мне очень нужна помощь в написании кода программы для работы с текстовым файлом. Допустим, у меня есть документ.txt...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2010, 02:12
Привет! Вот еще темы с ответами:

Работа с текстовым файлом - C++
Доброго времени суток, друзья! Прошу помощи с выполнением лабораторной работы. Задание: необходимо прочитать текстовый файл и...

Работа с текстовым файлом - C++
Нужно программа которая добавляет записи в файл вида: - Структура &quot;Спортивная команда&quot;: - название; - город; - количество...

Работа с текстовым файлом - C++
Вот часть кода: void ReadFile(ifstream &amp;fin, int Kol_Ar) { //чтение данных из файла и вывод на консоль CCust *ReadF = new...

Работа с текстовым файлом - C++
Ниже представлен код программы, которая ищет символ заданный пользователем в txt файле (&quot;input.txt&quot;), и те строки текста где находится этот...


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

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

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