Форум программистов, компьютерный форум 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.Элементами кольца являются указатель на массив строк и число,задающее длину этого массива.в кольцах с четными номерами массив строк в элементах на четных местах рассматривать в пордке возрастания , а в кольцах с нечетными номерами массив строк в элементах на нечетных местах рассматривать в... подробнее

Показать сообщение отдельно
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
27.05.2010, 01:44     Ошибка при вводе даных в файл
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
#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[250];
        char avtor[250];
        char tematika[250];
        char godvipuska[250];
        char ISBN[250];
        char izdatelstvo[250];
};
 using namespace std;
 
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()
{  
    const int Amax=255;
        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");
                          gets(k[i].name);
                
 
                        printf ("введите фамилию автора\t");
                          gets(k[i].avtor);
 
 
                        printf ("введите тематику книги\t");
                          gets(k[i].tematika);
 
                        printf ("введите год выпуска книги\t");
                          gets(k[i].godvipuska);
 
 
                        printf ("введите ISBN книги\t");
                          gets(k[i].ISBN);
 
 
                        printf ("введите издательство книги\t");
                          gets(k[i].izdatelstvo);
                     printf("\n");
        }
 
for(int i=0;i<3;i++)
{
fprintf(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, Amax);
}
 
 
      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 \n", k[i].name, k[i].avtor, k[i].tematika, k[i].godvipuska, k[i].ISBN, k[i].izdatelstvo, Amax);
                  
          };
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");
 
 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);
 
 
          return 0;
 
}
Добавлено через 14 секунд
у меня всё в файл пишет
 
Текущее время: 13:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru