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

перегрузка функции << и >> - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Библиотека времени выполнения Microsoft Visual Studio C обнаружила неустранимую ошибку http://www.cyberforum.ru/cpp-beginners/thread591458.html
При компилирование Debug все работает отлично. Если компилирую Release то, компилируется нормально, но когда запускаю выдает ошибку. "Библиотека времени выполнения Microsoft Visual Studio C обнаружила неустранимую ошибку в AStar.exe. Для отладки нажмите кнопку "Прервать", для завершения нажмите кнопку "Продолжить"." Компилятор MS VS 2008
C++ Работа с массивом.Обработка текстов Задача: Определить порядковые номера, считая от начала текста, определенных символов, которые задаются в исходных данных, заменить пробелами все такие символы, имеющие нечетные номера. Проблема: Работает правильно, но считывает только по одному символу (букве). Как сделать чтобы программа производила работу с словами? #include <stdio.h> #include <conio.h> #include <math.h> #include... http://www.cyberforum.ru/cpp-beginners/thread591456.html
Дан файл, каждая запись которого содержит тройки чисел C++
Добрый день. Помогите пожалуйста с прогой: Дан файл, каждая запись которого содержит тройки чисел, соответствующих координатам центра и радиусу окружности. Построить на экране все окружности по данным, содержащимся в файле. Очень прошу!
C++ Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа
Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа. Простые числа это когда они делятся только на себя и на единицу Пожалуйста помогите решить не получается она неправильно считает #include <iostream.h> #include <stdio.h> #include <conio.h> using namespace std; int fun(int n,int m); main () {int s,n,m; s=fun(n,m);
C++ Копирование файла не используя системные библиотеки. нужен совет http://www.cyberforum.ru/cpp-beginners/thread591438.html
Нужно скопировать один файл в другой( названия вводятся с клавиатуры). написал, но не работает комп виснит, а в директории появляется файл весом 75мб, совершенно с другими символами. может быть ыв найдете мою ошибку?#include<stdio.h> #include<stdlib.h> #include<conio.h> int main(){ FILE *in,*out; char ch,st,st1; clrscr(); printf("asdf"); scanf("%s",st); printf("asdsadfq");
C++ Вывести для массива на экран сначала элементы, стоящие на четных местах, потом — на нечетных Есть небольшое задание, нужна помощь: 1) Использование условий для изменения элементов массива и вывода их на экран >> Задан массив. Вывести на экран сначала его элементы, стоящие на четных местах, потом - на нечетных. C# or C++ ========================================================================== 2) Исчисление суммы, количества элементов массива, удовлетворяющих заданным условиям. подробнее

Показать сообщение отдельно
sundayfunday
0 / 0 / 0
Регистрация: 30.01.2011
Сообщений: 7
30.05.2012, 16:35     перегрузка функции << и >>
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
//include <stdio.h>
//include <iostream.h>
//include <fstream.h>
//include <string.h>
  char group[8]= “\0; char otchet[10]= “Print.txt;
  struct anketa         /* Объявление структуры нового типа (anketa), */
{ int num; int n;       /* описание полей (элементов) структуры       */
  char Fam[20];
  int dd,mm,yyyy;
  char pol[2];
  char address[40];
  friend istream& operator >> (istream& is, anketa &dan);
  friend ofstream& operator << (ofstream& ofs, anketa &dan);
  friend ostream& operator << (ostream& os, anketa &dan);
} 
// Переопределение стандартной операции при помощи операторной функции
  istream& operator >> (istream& is, anketa& dan)
{ cout << “\n Num:; is>>dan.num;
  cout << “\n Fam:; is>>dan.Fam;
  cout << “\n Data rozhdeniya:;
  cout << “\n Day:; is>>dan.dd;
  cout << “\n Month:; is>>dan.mm;
  cout << “\n Year:; is>>dan.yyyy;
  cout << “\n Pol:; is>>dan.pol;
  cout << “\n Address:; is>>dan.address;
  return is;
}
  ostream& operator << (ostream& os, anketa& dan) 
{ char str[80];                                   
  sprintf(str, “\n|%5d|%20.20s|%2d.%2d.%4d|%3s|%40.40s|”, 
  dan.num, dan.Fam, dan.dd, dan.mm, dan.yyyy, dan.pol, dan.address);
  str[79]= ‘\0;
  os<<str;
  return os;
}
  ofstream& operator << (ofstream& ofs, anketa& dan)
{ char str[80];
  sprintf(str, “\n|%5d|%20.20s|%2d.%2d.%4d|%3s|%40.40s|”, 
  dan.num, dan.Fam, dan.dd, dan.mm, dan.yyyy, dan.pol, dan.address);
  str[79]= ‘\0;
  ofs<<str;
  return ofs;
}
main()
{ int key=0;
  do  {  cout << “\n             Меню               ”;
         cout << “\n         1 - Ввод               ”;
         cout << “\n         2 - Вывод              ”;
         cout << “\n         3 - Конец              ”;
         cout << “\n  Введите номер пункта меню:    ”;
         cin >> key;
           switch(key)
        {  case 1: cout << “\n Введите группу”; /* Обработка события выбора пункта */
                   cin >> group;                /* меню- при вводе номера пункта   */
                   vvod(); break;               /* происходит выполнение функции,  */
           case 2: vivod(n); break;             /* указанной в соотв. операт. case */
           case 3: break;             
           default: cout << “\n Неверный номер!;
        }
      } while (key!=3);
  cout << “\n Конец программы.”; 
}
  vvod()
{ int i, n =0
  struct anketa A;
  cout << “\n Сколько анкет ввести?; 
  cin >> n;
  ofstream fout;                        // Создание 1 потока с именем fout для вывода
  fout.open(group, ios::out|ios::app);  /* Связывание потока с файлом (group) и */
    for(i=0;i<n;i++)                    /* определение режимов работы с ним     */
  { cout << “\n Ввод ” << i+1 <<-ой анкеты”;
    cin >> A;
    fout.write((char*)&A,sizeof(struct anketa)); /* Вставка записи размером struct */
                                                 /* anketa в из области памяти по  */
                                                 /* указат. &A в поток вывода fout */
  } fout.close();                       // Закрытие потока, разрыв связи с файлом
}
 
  void vivod()
{ struct anketa A;
  ofstream fout(otchet,ios::out);
  fout << “список студентов группы ” << group;
  ifstream fin;
  fin.open(group, ios::binary);
    while(!fin.read((char*)&A, sizeof(struct anketa)).eof())
  { fout<< A;
  }
  fout.close();}
кажется из кода все понятно по заданию, в чем ошибка, в чем не однозначность ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru