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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
reventon707
0 / 0 / 0
Регистрация: 23.02.2012
Сообщений: 16
#1

добавление записи - C++

08.04.2012, 19:58. Просмотров 450. Ответов 7
Метки нет (Все метки)

приветствую всех!!!!у меня такая проблема - мне надо написать программу,которая добавляет запись в файл(уже созданный). но т.к. я новичок в этом деле,то,конечно,у меня не получилось. прошу указать на ошибки. можно прям носом ткнуть)))))и показать где и что именно исправлять. заранее всем спасибо!!!!


вот тут моя наработка. сама проблема заключается в том,что добавляет не все. по условию надо добавить автора и его книгу. но добавляет только книгу.
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
#include<fstream>
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream>
 char str[100];
 int main(void)
 {
     FILE*F=fopen("H:\\spravochnik.txt","at");
     if (F==NULL)
     { printf("oshibka otkritiya!!!");}
     fscanf(F,"%s\n",str);
 
    char str[100];
    printf("vvedite FIO: ");
    gets(str);
    printf("FIO vvedeno: %s\n",str);
 
  printf("vvedite nazvanie knigi: ");
  scanf ("%s",str);
  printf("nazvanie knigi vvedeno: ");
  puts(str);
 
 
 
    fprintf(F,"%s\n",str);
 
 
     printf("zapis' dobavlena");;
 
 
return 0;
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2012, 19:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос добавление записи (C++):

добавление записи - C++
доброе всем время суток!!!прошу помочь решить небольшую,но важную проблему!я составил прогу,которая добавляет запись в уже заранее...

Удаление/добавление записи по ключу в односвязном списке - C++
Возможно-ли удаление или добавление записи по ключу в односвязном списке? Если да, то не пойму, как &quot;перемещаться по списку&quot; не разрывая...

[Классы, Наследование, Шаблоны] Добавление записи в список - C++
В данной программе используется наследование с применением шаблонов класса. В другой похожей программе не используя наследования программа...

Добавление нового указателя в конец массива указателей, удаление указанного элемента, добавление указателей - C++
Здравствуйте. Помогите, пожалуйста, разобраться с одним большим заданием. Задание пока в процессе написания, но уже наверное есть ошибки....

Написать функции для чтения/записи отдельных бит для любой записи из данного набора - C++
Начиная с адреса А в памяти МК находятся N записей длиной k бит каждая. Записи выровнены по границе слова. Написать функции для...

Проверить, есть ли в записи числа m цифры, совпадающие с цифрами в записи числа n - C++
Помогите составить программу. Условие: Даны два натуральных числа m и n{m&lt; 9999, n &lt; 9999). Проверить, есть ли в записи числа m...

7
BoBaH26
30 / 30 / 0
Регистрация: 02.12.2010
Сообщений: 255
08.04.2012, 20:17 #2
Попробуйте использовать структуры:
C++
1
2
3
4
5
6
struct List
   {
   char author[50];
   char book[50];
   };
List info[20];
А в зависимости от того, что Вам нужно, оперируйте с элементами структуры.
Обращение к элементу структуры происходит через ".".
Например, info[5].author, означает, что мы обращаемся к 6 (в нашем понимании) записи, элементу "author".
1
reventon707
0 / 0 / 0
Регистрация: 23.02.2012
Сообщений: 16
08.04.2012, 20:23  [ТС] #3
а куда конкретно его вставить?
0
BoBaH26
30 / 30 / 0
Регистрация: 02.12.2010
Сообщений: 255
08.04.2012, 20:39 #4
Мой способ Вам не подойдет, т.к. придется все набирать заново.
Как я понял, Вы только вводите название книги, а автора нет, поэтому он и не выдает его. Необходимо добавить:
C++
1
2
3
4
5
6
7
8
9
10
11
printf("vvedite avtora: ");
  scanf ("%s",str);
  printf("avtor vveden: ");
  puts(str);
 
 
 
    fprintf(F,"%s\n",str);
 
 
     printf("zapis' dobavlena");
Добавлено через 2 минуты
Кроме того, проверку наличия и работоспособности файла Вы сделали:
C++
1
2
if (F==NULL)
     { printf("oshibka otkritiya!!!");}
Но остальной код будет выполняться, даже если будут проблемы с файлом, поэтому весь остальной код необходимо заключить в "else", т.е.
C++
1
2
if (F==NULL)
     { printf("oshibka otkritiya!!!");} else {...}//Вот тут все остальное.
1
reventon707
0 / 0 / 0
Регистрация: 23.02.2012
Сообщений: 16
08.04.2012, 20:52  [ТС] #5
если Вам не сложно,могли бы Вы всю прогу полностью написать. у меня что-то вообще никак не получается. буду очень благодарен!!!!!
0
BoBaH26
30 / 30 / 0
Регистрация: 02.12.2010
Сообщений: 255
08.04.2012, 20:55 #6
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
#include<fstream>
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream>
 char str[100];
 int main(void)
 {
     FILE*F=fopen("H:\\spravochnik.txt","at");
     if (F==NULL)
      printf("oshibka otkritiya!!!"); else{
     fscanf(F,"%s\n",str);
 
    char str[100];
    printf("vvedite FIO: ");
    gets(str);
    printf("FIO vvedeno: %s\n",str);
 
  printf("vvedite nazvanie knigi: ");
  scanf ("%s",str);
  printf("nazvanie knigi vvedeno: ");
  puts(str);
 
 
 
    fprintf(F,"%s\n",str);
 
 
     printf("zapis' dobavlena");
printf("vvedite avtora: ");
  scanf ("%s",str);
  printf("avtor vveden: ");
  puts(str);
 
 
 
    fprintf(F,"%s\n",str);
 
 
     printf("zapis' dobavlena");
}
 
 
return 0;
 }
Прошу прощения за синтаксис, переделывать все долго, но если исходный вариант работал, то этот тоже должен работать.
1
reventon707
0 / 0 / 0
Регистрация: 23.02.2012
Сообщений: 16
08.04.2012, 21:02  [ТС] #7
работал,но,увы,не так как надо. спасибо огромное!!!а не подскажете как сделать проверку данных?т.е. при добавлении записи проверить есть такая запись или нет?если не сложно хотелось бы увидеть в коде С++. у меня с этим вообще никаких продвижений.
0
BoBaH26
30 / 30 / 0
Регистрация: 02.12.2010
Сообщений: 255
08.04.2012, 22:19 #8
reventon707, извините, но придется писать довольно объемный код, а времени сейчас у меня мало. Могу сказать, что можно использовать функцию нахождения подстроки в строке "strstr (s1,s2)", где s1 - строка, в которой ищем подстроку, а s2 - искомая подстрока. Т.е. необходимо проверить все строки файла путем считывания и использования указанной функции. Например, считали из файла F строку str, используем strstr (str,s), где s - необходимая нам информация, а str - строка, считанная из файла F. Т.е. необходимо в цикле считывать все строки файла и проверять вхождение введенной нами строки в считанную строку. Надеюсь, изложил понятно....
0
08.04.2012, 22:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2012, 22:19
Привет! Вот еще темы с ответами:

Есть в записи числа m цифры, которые совпадают с цифрами в записи числа n - C++
Дано два натуральных числа n(&lt;=9999) и m (&lt;=9999). Проверить, есть в записи числа m цифры, которые совпадают с цифрами в записи числа n. ...

ListView: добавление записи, выбор записи, удаление записи - Visual Basic .NET
на форме есть три текст бокса: textbox1(имя), textbox2(фамилия), textbox3(отчество), textbox4(выбранное) кнопка Button1(добавить),...

Добавление новой записи в таблицу и осуществление запроса на добавление при загрузке формы - Visual Basic .NET
Здравствуйте. Есть одна просьба, подскажите как сделать или пример кода покажите на вот такую фишку, при открытии формы для ввода данных в...

Автоматическое добавление записи в таблицу, после добавления записи в другой таблице - MS Access
Привет всем! Подскажите, как Access 2010 сделать так, чтобы при добавлении записи в одной таблице, автоматически появлялась запись (одно...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru