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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск в глубину http://www.cyberforum.ru/cpp-beginners/thread1025255.html
Помогите с заданием пожалуйста. Число 1 можно записать как сумму n чисел вида 1 / i, где i - натуральное число. Например, для n = 3 имеем 1 = 1/2 +1 / 4 +1 / 4. Найти способы записи числа 1 для...
C++ Эвристика. Рюкзак Алладина. Помогите с заданием пожалуйста. Разработать алгоритм и написать программу для задания Алладина: сколько ценных вещей (заданных массе и цене) может поместиться в рюкзак (заданный объем) Алладина. http://www.cyberforum.ru/cpp-beginners/thread1025254.html
C++ Составить функцию вычисления суммы
Прошу помощи, не понимаю, как записать числитель, что означает это троеточие? Заранее спасибо!
Конвертация из heximal в int C++
Нужно написать функцию для конвертации строки, представленной как heximal, в int. Например: Вход: char * pStr = "0xFF"; Выход: int iRes = 255;
C++ Значение бесконечности для неизвестного типа http://www.cyberforum.ru/cpp-beginners/thread1025234.html
Доброго времени суток, уважаемые эксперты! Просьба помочь с возникшим у меня вопросом: для решение некоторой задачи, мне приходится иметь в программе значение бесконечности float difference =...
C++ Проверка числа открывающихся и закрывающихся скобок Нужно написать функцию, которая проверяет правильность расположения скобок в строке. Если открывающимся скобкам соответствует столько-же закрывающихся, функция должна возвращать true. Пример... подробнее

Показать сообщение отдельно
PapaKarlito
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 24

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

02.12.2013, 03:45. Просмотров 2972. Ответов 36
Метки (Все метки)

Программа компилится, но не может открыть файл studenti.txt. Куда этот файл точно кидать, что бы программа его находила?


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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#include <stdio.h>
#include <conio.h>
#include <string.h>                             //libraries
#include <windows.h>
#include <iostream>
 
#define N 20
 
int main()
{
    struct individual                           //define structure for  
    {
        // Nr., Name, Surname, DOB
        int Nr;
        char name[30], surname[30];
        struct birth
        {
            int day;                                  //hell yeah a structure within a structure
            int month;                                //INCEPTION
            int year;
        }date;
    }student[N], temp[1];
    int i, j, last, out, choice, exists;         //some handy variables
 
 
 
    FILE *list;                                 //will be operating in two files
    FILE *list_sorted;                          //original and edited
    errno_t err;
    system("cls");
    out = 0;                                      //initialize some stuff
    j = 0;
    exists = 0;
    last = 0;
 
    do                                          //a while loop for menu
    {
        //useful stuff. but takes a shitton of time to debug
        system("cls");
        printf("MENU:\n1.Aizpildit sarakstu no faila.'studenti.txt'.\n2.Papildinat sarakstu ar rokam.\n");
        printf("3.Paradit sarakstu.\n4.Atrast studentu, kura vards un uzvards atbilst lietotaja ievaditajiem datiem\n5.Iziet\n");
        scanf_s("%d", &choice);
        switch (choice)
        {
        case 1:                                                                //case 1 to scan a file and read all data from it.
        
            if ((err = fopen_s(&list,"studenti.txt", "r")) == NULL) {
    
 
                printf("Nevar atvert failu \n");
                system("pause");
                exit(1);
            }
 
            for (i = 0; i < N; i++)
            {
                //since there is no way to return the number of the lines in a file
                fscanf_s(list, "%d", &student[i].Nr);           //and if we try to return a nonexistent line, it will se the pointer to the end of line
                fscanf_s(list, "%s", &student[i].name);         //the return will be gibberish, but the pointer will stand on the same way before 
                fscanf_s(list, "%s", &student[i].surname);      //and after the attempt to read stuff.
                fscanf_s(list, "%d", &student[i].date.day);     //therefore, if we see that pointer position doesnt change, we know ir is at the end.fscanf(list, "%1c");
                fscanf_s(list, "%d", &student[i].date.month);   //if so, we break out of the loop for it is set to go through the maximum list size N.
                fscanf_s(list, "%d", &student[i].date.year);
                if (feof(list))
                {
                    last = i;
                    break;
                }
            }
            fclose(list);
            exists = 1;                                    //tiny variable for later use, to avoid processing empty list
 
            break;
 
 
        case 2:
            choice = 0;
            while (choice != 1)
            {
                student[last].Nr = last;
                printf("\nIevadiet %d. studenta informaciju\n", last);
                printf("Vards: ");
                scanf_s("%s", &(student[last].name));
                printf("Uzvards: ");
                scanf_s("%s", &(student[last].surname));                            //manual input of data into structure.
                printf("Dzimshanas datums. DIENA: ");
                scanf_s("%2d", &(student[last].date.day));
                printf("Dzimshanas datums. MENESIS: ");
                scanf_s("%2d", &(student[last].date.month));
                printf("Dzimshanas datums. GADS: ");
                scanf_s("%2d", &(student[last].date.year));
                printf("\n Pievienot vel? (1=beigt)");                            //in order to give user the freedom to choose how many
                scanf_s("%d", &choice);                                             //items to add, we ask him at the end of every loop.
                last++;                                                           //this way ca avoid making him write in t once 20 lines.
            }
            exists = 1;
            break;
 
 
        case 3:
            system("cls");
            if (exists > 0)                                                        //here's where we need the exists variable. if we don't have
            {
                //a check for structure existance, the compiler goes bananas trying to print. 
                printf("Studentu saraksts:\n");
                for (i = 0; i < last; i++)
                {
                    printf("%2d%15s%15s%10d.%2d.%2d\n", student[i].Nr, student[i].name, student[i].surname,
                        student[i].date.day,
                        student[i].date.month,
                        student[i].date.year);
                }
            }
            else printf("Ludzu izveidojiet sarakstu!\n");
            system("pause");
 
 
 
        case 4:
            system("cls");
            if (exists > 0)
            {
                printf("Ievadiet studenta vardu:\n");
                scanf_s("%s", &(student[j].name));
                printf("Ievadiet studenta uzvardu: ");
                scanf_s("%s", &(student[j].surname));
 
                for (j = 0; j < last; j++)
                {
                    for (i = 0; i < last; i++)
                    {
                        if (student[i].name == student[j].name && student[i].surname == student[j].surname)
                        {
                            printf("Saraksta ir tads students un atrodas %d pozicija\n", i);
                        }
                        else {
                            printf("Tada studenta saraksta nav\n");
                        }
                        
                        }
                    }
                }
                
            
            else printf("Ludzu izveidojiet sarakstu!\n");
            system("pause");
            break;
 
        
 
 
        case 5:
            out = 1;
            break;
 
 
        default:
            system("cls");
            printf("Ludzu izveidojiet sarakstu!\n");
            system("pause");
            break;
 
        }
    }
    while (out!=1);
    out = 0;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.