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

Подскажите пожалуйста в чем ошибка?(С++,структуры,стек) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Класс TGoods, создающий тип – товар http://www.cyberforum.ru/cpp-beginners/thread1191611.html
Задание вот: Объявите класс TGoods, создающий тип – товар. Элементы – данные класса – наименование товара, год производства. Предусмотрите конструкторы класса: по умолчанию; получающий параметры; получающий параметр –ссылку на класс TGoods Напишите функции – методы класса: для ввода – вывода данных о товаре; определения, относится ли год производства товара к какому – либо, значение...
C++ Структура "Студент" Помогите пожалуйста разобраться в программе Тест. // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <math.h> #include <windows.h> #include <cstdio> http://www.cyberforum.ru/cpp-beginners/thread1191604.html
C++ Разделение классовой функции из заголовка в .h + .cpp
Пытаюсь разобрать заголовок на IAI.h + IAI.cpp столкнулся с функцией которую тупо не знаю как разбить правильно. Помогитепожа! :D friend ostream& operator<<(ostream& os, const sto& sto) { os << sto.num; return os; }если что, это функция для дружбы кастумного типа (sto) с std:cout
C++ Случайные блуждания с переменным шагом
не могу разобраться в задании, объясните матмоделью или алгоритмом, может кто то программой поможет Случайные блуждания с переменным шагом. Рассмотрите одномерное случайное блуждание со всеми допустимыми длинами прыжков. Вероятность того, что длина шага равна j, имеет вид P(j)=exp(-j). Определите удаление от начального положения после 10 шагов.
C++ Длинная арифметика: вычислить 7^123 http://www.cyberforum.ru/cpp-beginners/thread1191561.html
Помогите пожалуйста!! Не могу справиться! Задание: вычислить 7123.
C++ Перегрузка функций: определите функцию, которая находит минимальное значение из двух чисел Определите две функции с одним именем для решения задачи. Определите функцию, которая находит минимальное значение из двух чисел (числа могут быть целыми или действительными). #include "stdafx.h" #include <cstdlib> #include <iostream> using namespace std; подробнее

Показать сообщение отдельно
Любовь777
0 / 0 / 0
Регистрация: 24.05.2014
Сообщений: 9

Подскажите пожалуйста в чем ошибка?(С++,структуры,стек) - C++

28.05.2014, 19:13. Просмотров 201. Ответов 2
Метки (Все метки)

Подскажите пожалуйста, в чем ошибка
При считывании из файла единственной записи
5группа
"Anokhin
Viktor
petrovich

4
5
3
4 "

,программа выдает
list after elements removing
Group:9966824
Familia:*
Name:Viktor
Otchestvoetrovich
B1:4
B2:55
B3:7
B4:8
,

судя по всему он просто не считывает фамилию и группу и заполняет их рандомом.
текст проги
C++ (Qt)
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
#include <stdio.h>
#include <string.h>
 
#include <limits.h>
#include <windows.h>
#include <locale>
 
#ifdef Q_OS_WIN32
const char* codecName = "IBM866";
#endif
 
 
 
 
 
#define Lmax 20
#define CLR while(fgetc(f)!='\n')
 
struct Student
{
 
    char Group[Lmax];
    struct
    {
        char Famil[Lmax], Name[Lmax], Otch[Lmax];
                                                        //s_name - surname
    }FIO; //manufacturer - производитель
    struct
    {
        int B[Lmax];
    }uspevaemost;
 
    Student *next; //поле указателя на следующую запись
};
//формирование стека стульев. На входе - имя входного файла
 
Student* stack(char _name[])
{
    Student *tek, *stack=NULL; //изначально список пуст
    FILE *f;
    if (!(f=fopen(_name, "r")))
    puts("File not found");
    else
    {
        while(!feof(f))
        {
        tek = new Student;
        if (fgets(tek->Group, Lmax, f))
        {   CLR;
            tek->Group[strlen(tek->Group)-1]='\0';
 
            fgets(tek->FIO.Famil, Lmax, f);
            tek->FIO.Famil[strlen(tek->FIO.Famil)-1]='\0';
 
            fgets(tek->FIO.Name, Lmax, f);
            tek->FIO.Name[strlen(tek->FIO.Name)-1]='\0';
 
            fgets(tek->FIO.Otch, Lmax, f);
            tek->FIO.Otch[strlen(tek->FIO.Otch)-1]='\0';
            puts("File schitan ne vec");
            CLR;
 
            fscanf(f,"%d %d %d %d",&tek->uspevaemost.B[0],&tek->uspevaemost.B[1],&tek->uspevaemost.B[2],&tek->uspevaemost.B[3]);
 
            puts("File schitan vec");
 
            tek->next=stack;
            stack=tek;
            }
        }
delete tek;
}
     puts("File schitan");
return(stack); //возвращается указатель на вершину стека
}
 
 
 
void vivod(Student* stack, char name[]) //вывод списка в файл
{FILE *f2=fopen(name, "w");
if (!stack)
{
fprintf(f2," list after elements removing is empty\n");
}
else
{
fprintf(f2, " list after elements removing\n");
//вывод списка в файл
while(stack!=NULL)
{
fprintf(f2, "Group:%d\n", stack->Group);
fprintf(f2, "Familia:%s\n", stack->FIO.Famil);
fprintf(f2, "Name:%s\n", stack->FIO.Name);
fprintf(f2, "Otchestvo:%s\n", stack->FIO.Otch);
fprintf(f2, "B1:%d\n",stack->uspevaemost.B[0] );
fprintf(f2, "B2:%d\n",stack->uspevaemost.B[1] );
fprintf(f2, "B3:%d\n",stack->uspevaemost.B[2] );
fprintf(f2, "B4:%d\n",stack->uspevaemost.B[3] );
stack=stack->next; //движение по списку
}
}
puts("File sohranen");
fclose(f2);
}
 
 
 
using namespace std;
 
int main()
{
Student *first; //указатель на вершину стека
char name1[Lmax], name2[Lmax]; /* имена входного и
выходного файла */
printf("Input file name: ");
gets(name1);
printf("Output file name: ");
gets(name2);
first=stack(name1); //формирование стека
if (first!=NULL)
{
 
vivod(first, name2); //вывод результата в файл
printf("Results saved in file %s\n", name2);
}
return 0;
}
текст задания прикрепила


Добавлено через 2 минуты
каждая запись добавляется в стек*
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru