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

Debug Assertion Failed - C++

Восстановить пароль Регистрация
 
Alexandr V
Сообщений: n/a
08.01.2014, 09:25     Debug Assertion Failed #1
Народ помогите пожалуйста. Горю! Дан файл txt, со списком студентов. В списке есть однофамильцы. Их и нужно вывести на экран. Код написал. Прога запускается, Но в конце пишет Debug Assertion Failed. Line 77. Подскажите что я делаю не так?


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
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <io.h>
#include <iostream>
#include<TCHAR.H>
#define false 0
#define true 1
 
typedef struct
{ char name[20];
  char surname[20];
  char klass[1];
  char form[1];
} pupil;
 
char fname[80]="c:\\students.txt";
char r[2] = ";";
int b = 0;
 
// Функция заполнения файла студентов
// n- количество студентов
void input(int n)
{
 pupil p;
 int i;
 FILE *fp;
 fp=fopen(fname,"w+b");
  for (i=1;i<=n;i++)
  {
  char h ;
      std::cout<<"Input "<<i<<" name \n";
  std::gets(p.name);
  std::cout<<"Input "<<i<<" surname \n";
  std::gets(p.surname);
  std::cout<<"Input "<<i<<" class \n";
  std::cin >>p.klass; 
  std::cout<<"Input "<<i<<" form \n";
  std::cin >>p.form;
  
  char mass[46] = "";
  
  strcat(mass,strcat(p.name,r));
  strcat(mass,strcat(p.surname,r));
  strcat(mass,strcat(p.klass,r));
  strcat(mass,strcat(p.form,"#"));
  fwrite(&mass,sizeof(mass),1,fp);
  }
 fclose(fp);
}
//Функция поиска
bool search(char name[20])
{
  pupil p;
  int i;
 
  FILE *fp;
 
  fp=fopen(fname,"r");
  i=0;
  char ch;
  do {
    ch = getc(fp);
    ++i;
    if((ch != ';') && (i <= 20) && (ch != '#'))
  {
      p.name[i] = ch;
  }
  else
  {
      if (p.name[0] != '~')
      {
      if (std::strcmp(p.name,  &name[20]))
      {
      std::cout << p.name ;//"Выводим имя: \n";  
      p.name[0] = '~';
      ++b;
      }
      }
  }
  if (ch == '#')
  {
    i = 0;
  }
}
  while (ch!=EOF);
  fclose(fp);
  if (b > 0)
      return true;
  else
  return false;
  
}
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"RUS");
{
  char n[60]; bool b;
 
    int count = 2;
    // Вводим список студентов
    std::cout << "Please, fill the students list: \n";
    input(count);
    // Вводим искомое имя
    std::cout << "Please, enter your full name: \n";
    std::gets(n);
 
    // Поиск имени
    b=search(n);
  // Вывод информации
    switch(b)
    {
    case 1:std::cout<<"There are pupils with same surname in the school\n"; break;
    case 0:std::cout<<"There are no pupils with same surname in the school\n"; break;
    }
    getch();
     std::system("pause");
    return 0;
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 09:25     Debug Assertion Failed
Посмотрите здесь:

C++ debug assertion failed
Debug assertion failed C++
Debug assertion failed C++
Debug Assertion Failed C++
C++ Debug Assertion Failed
C++ Debug assertion failed
Debug assertion failed C++
Debug Assertion Failed! C++

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

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

Текущее время: 23:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru