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

Ошибка при вводе даных в файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Осуществить "вращение" квадрата вокруг его центра http://www.cyberforum.ru/cpp-beginners/thread136269.html
вот есть не сложная задачка для Си: Осуществить "вращение" квадрата вокруг его центра. кто сможет сделать такое,буду очень благодарен =)
C++ Выход за пределы массива Столкнулся со следующей проблемой. Ввожу по формату: N1 a..a N2 b..b N3 c..c Мой код при выполнении выдаёт ошибку. Выход за пределы массива (Access Violation). Не могу понять почему, и расширял кол-во элементов, всё-равно. Вот код: #include <iostream.h> http://www.cyberforum.ru/cpp-beginners/thread136264.html
C++ Создать функцию на согласные буквы, если согл. буква, то функция возвращает ей значение 1, а гласной-0.
Помогите пожалуйста, не могу понять где тут ошибка! уже так долго с ней мучаюсь=( #include<iostream> using namespace std; void sogl(char *n) { for (int i=0; n; i++) { if (n=='a') cout<<false; else { if (n=='e') cout<<false; else
Блок-схема C++ C++
#include <iostream.h> #include <math.h> double flnx(double x) { double sum = x, f = x; int i = 1; while (fabs(f) > 0.001) {
C++ Игра в кости http://www.cyberforum.ru/cpp-beginners/thread136260.html
НУжно написать на C++ игру в кости,консольную,с использованием генератора случайных чисел. т.е есть два игрока один бросает генерируеца число от 1 до 6. потом другой и у кого больше выпало тот выйграл. а если выпали одинаковые числа,то сначала. очень нужна помощь просто курсачь очень скоро сдавать а я в этом не зуб ногой особо(((
C++ Дан массив указателей на кольца,элементов в этом массиве не более 50,последний элемент-указатель null.Элементами кольца являются указатель на Дан массив указателей на кольца,элементов в этом массиве не более 50,последний элемент-указатель null.Элементами кольца являются указатель на массив строк и число,задающее длину этого массива.в кольцах с четными номерами массив строк в элементах на четных местах рассматривать в пордке возрастания , а в кольцах с нечетными номерами массив строк в элементах на нечетных местах рассматривать в... подробнее

Показать сообщение отдельно
Luna17
 Аватар для Luna17
3 / 3 / 1
Регистрация: 09.03.2010
Сообщений: 95
27.05.2010, 01:24  [ТС]     Ошибка при вводе даных в файл
прога ругается после первого ввода она встает на этой строчке, и еще 2 не пишет и меня вышибает
C++
1
fprintf(f,"%s %s %s %s %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].
Добавлено через 1 минуту
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
#include "stdafx.h"
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
 
struct  BOOK
{
        char *name;
        char *avtor;
        char *tematika;
        char *godvipuska;
        char *ISBN;
        char *izdatelstvo;
};
 using namespace std;
const int Amax=255;
ostream& operator<<(ostream& out, BOOK &J)
 { 
         out<<"\n фамилия автора : "<<J.avtor;
         out<< "\n тематика книги : "<<J.tematika;
         out<<"\n год выпуска : "<<J.godvipuska;
         out<< "\n ISBN: "<<J.ISBN;
     out<<"\n издательство: "<<J.izdatelstvo;
         return out;
 }
int main()
{  
    setlocale (LC_ALL, "Russian");
    BOOK k[3],h;
    int i;
    FILE* f=fopen("katalogizator.txt","w+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
        { 
            printf ("введите название книги\t");
            k[i].name = new char [Amax];
              gets(k[i].name);
        
 
            printf ("введите фамилию автора\t");
            k[i].avtor = new char [Amax];
              gets(k[i].avtor);
 
 
            printf ("введите тематику книги\t");
            k[i].tematika = new char [Amax];
              gets(k[i].tematika);
 
            printf ("введите год выпуска книги\t");
            k[i].godvipuska = new char [Amax];
              gets(k[i].godvipuska);
 
 
            printf ("введите ISBN книги\t");
            k[i].ISBN = new char [Amax];
              gets(k[i].ISBN);
 
 
            printf ("введите издательство книги\t");
            k[i].izdatelstvo = new char [Amax];
              gets(k[i].izdatelstvo);
 
for(int i=0;i<3;i++)
{
fprintf(f,"%s %s %s %s %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
}
            printf("\n");
        }
      fclose(f);
 
    f=fopen("katalogizator.txt","r+t");
    if (!f)
    {
        printf("Ошибка открытия файла");
        return 1;
    }
    for (i=0; i<3; i++)
    {
        fscanf (f, "%s %s %s %s %s %s \n", &k[i].name, &k[i].avtor, &k[i].tematika, &k[i].godvipuska, &k[i].ISBN, &k[i].izdatelstvo );
    }
      fclose(f);
for (i=0; i<3; i++)
      {
          printf("%s %s %s %s %s %s ", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
          printf("\n");
      };
printf("введите название ключевого поля для поиска данных\t");
char *temp;
temp = new char [Amax];
scanf_s("%s", temp, Amax-1);
printf ("%s",temp);
int u=0;
f=fopen("katalogizator.txt","r+t");
{
h.avtor = new char [Amax];
h.godvipuska = new char [Amax];
h.ISBN = new char [Amax];
h.izdatelstvo = new char [Amax];
h.name = new char [Amax];
h.tematika = new char [Amax];
}
 while(!feof(f))
{
    printf("\ntest");
 fscanf(f, "%s %s %s %s %s %s \n", &h.name, &h.avtor, &h.tematika, &h.godvipuska, &h.ISBN, &h.izdatelstvo);
 
 if(strcmp(h.name,temp) == 0)
 {
    printf("\n Такая книга найдена в этой строке %s %s %s %s %s %s \n", &h.name, &h.avtor, &h.tematika, &h.godvipuska, &h.ISBN, &h.izdatelstvo, Amax);
    u++;
    break;
 }
  if (k==0) printf("\n Таких книг нет"); 
 }
 
fclose(f);
for (i=0; i<3; i++)
{
  delete[] k[i].avtor;
  delete[] k[i].ISBN;
  delete[] k[i].godvipuska; 
  delete[] k[i].izdatelstvo;
  delete[] k[i].name;
  delete[] k[i].tematika;
}
{
delete[] h.avtor; 
delete[] h.godvipuska; 
delete[] h.ISBN;
delete[] h.izdatelstvo ;
delete[] h.name;
}
        _getch();
          return 0;
 
}
 
Текущее время: 23:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru