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

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

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

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

29.05.2010, 02:12. Просмотров 361. Ответов 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++
Ниже представлен код программы, которая ищет символ заданный пользователем в txt файле (&quot;input.txt&quot;), и те строки текста где находится этот...

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

Работа с текстовым файлом - C++
Дан текстовый файл, имеющий более 3х строк. Задание: удалить из файла последние три строки. Заранее спасибо всем, кто поможет.

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

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

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

Работа с текстовым файлом - C++
В ОБЩЕМ ЗАДАЧА СОСТОИТ В СЛЕДУЮЩЕМ: В текстовом файле информация хранится в следующем виде: &lt;имя,...

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

Работа с текстовым файлом - C++
Дан текстовый файл, фразы в котором отделены друг от друга точками, а слова – пробелами и знаками препинания. Удалить из этого файла лишние...

Работа с текстовым файлом С++ - C++
Здравствуйте! Помогите написать программу которая будет выводить на консоль студентов, имеющих по трём предметам (Math Analysis, Physics,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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