Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2009, 15:08   #1
bunya
Пользователь
 
Регистрация: 11.01.2009
Сообщений: 19
По умолчанию Помогите, пожалуйста, не могу исправить ошибки

компилирую программу выдаются ошибки error C2296: '<<' : illegal, left operand has type 'char [10]'
error C2297: '<<' : illegal, right operand has type 'const char [2]' в одной и той же строке , как мне можно её исправить? программа такая :
Код:
#include "stdafx.h"
#include <stdio.h>
#include <io.h>
#include <sys/stat.h>
#include <conio.h>
#include <windows.h>
#include <fstream>
#include <iostream>
#include <string.h>
#include <process.h>
#define kollichestvo 10
using namespace std

//Функция очистки экрана

void clear_screen()
{
 HANDLE hConsole;
 CONSOLE_SCREEN_BUFFER_INFO csInfo;
 DWORD dummy;
 COORD Home={0,0};
 hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
 GetConsoleScreenBufferInfo(hConsole, &csInfo);
 FillConsoleOutputCharacter(hConsole,' ',csInfo.dwSize.X*csInfo.dwSize.Y,Home,&dummy);
 SetConsoleCursorPosition(hConsole,Home);
  printf("\n gr.07SI Bushkova I.V 40 \n");
 printf(" kommunalnye_uslugi \n");
}
typedef struct kommunalnye_uslugi 
               {
				char FIO[10];
				char adres[10];
				float kolvo_chel,tarif,itogo;
				}fg;
 kommunalnye_uslugi*vse;
int cnt_vse=0;

//Просмотр записей
void prosmotr_zapisey()
{
int i;
clear_screen();
printf("\n numer \t FIO \t adres \t kolichestvo_chelovek \t tarif \t itogo");
for (i=0;i<(cnt_vse);i++)
printf("\n %d \t %s \t %s \t %f \t %f \t %f \n",i+1,vse[i].FIO,vse[i].adres,vse[i].kolvo_chel,vse[i].tarif, vse[i].itogo);
}
//Добавление записей
void dobavlenie()
{
clear_screen();
printf("\n vvedi FIO kvartirosem4ka: ");
scanf("%s",&vse[cnt_vse].FIO);
printf("\n vvedi adres kvartirosem4ka: ");
scanf("%s",&vse[cnt_vse].adres);
printf("\n vvedy koli4estvo 4elovek: ");
scanf("%f",&vse[cnt_vse].kolvo_chel);
printf("\n vvedi tarif: ");
scanf("%f",&vse[cnt_vse].tarif);
vse[cnt_vse].itogo=(vse[cnt_vse].kolvo_chel)*(vse[cnt_vse].tarif);
printf("\n \n");
cnt_vse++;
}
//Функция редактирования
int update()

{
 short int whoupdate;
 printf("\nSeichas v spiske %d zapisei.\nVvedite nomer zapisi, kotoryy nado otredaktirovat.\n",cnt_vse);
 scanf("%d",&whoupdate);
 if ( (whoupdate>cnt_vse) || (cnt_vse==0) ) 
 {
  printf("Etoi zapisi ne sychestvyet!");
  getch();
 }
   else
   {
	printf("\nTekyshaa zapis:\n");
	for (int i=whoupdate;i<(whoupdate+1);i++)
	{
     printf("\n FIO_kvartirosem4ka: %s \n",vse[i-1].FIO); 
	  printf("\n adres: %s \n",vse[i-1].adres);
     printf("koli4estvo 4elovek: %f \n",vse[i-1].kolvo_chel);
     printf("tarif: %f \n",vse[i-1].tarif);
     printf("itogo: %f \n\n",vse[i-1].itogo);
	}
	printf("\n\nVvedite novyy zapis:\n");
	for (int i=whoupdate;i<(whoupdate+1);i++)
	{
	 printf("\nVvesti FIO_kvartirosem4ka: ");
	 scanf("%s",&vse[i-1].FIO); 
	  printf("\nVvesti adres: ");
	 scanf("%s",&vse[i-1].adres); 
	 printf("Vvesti koli4estvo 4elovek: ");
	 scanf("%f",&vse[i-1].kolvo_chel);
	 printf("Vvesti tarif: ");
	 scanf("%f",&vse[i-1].tarif);
	 vse[i-1].itogo=(vse[i-1].kolvo_chel)*(vse[i-1].tarif);
	 printf("\n");
	}
   }
   return 0;
}
//Удаление записи
void udalenie()
{
int i,m;
clear_screen();
printf("vvedi nomer udalyzemoi zapisi: ");
scanf("%d",& m);
if (m>cnt_vse)
	{
	  return;
	}
for(i=m-1;i<cnt_vse;i++)
	{
	  vse[i]=vse[i+1];
	}
cnt_vse--;
}
//Удаление всех записей
void fatal_delete()
{
delete [] vse;
kommunalnye_uslugi*vse;
cnt_vse=0;
vse=new kommunalnye_uslugi[kollichestvo];
}
Модератор: тег CODE

Последний раз редактировалось MaTBeu; 13.01.2009 в 19:56.
bunya вне форума Ответить с цитированием
Старый 13.01.2009, 15:09   #2
bunya
Пользователь
 
Регистрация: 11.01.2009
Сообщений: 19
По умолчанию

продолжение
Код:
//Функция вывода по количеству человек
void vyvod_po_kolvo_chel()
{
clear_screen();
float cs;
printf("\n\nVvesti koli4estvo 4elovek: ");
scanf("%f",&cs);
clear_screen();
printf("OTBOR PO koli4estvu 4elovek =  %f",cs);
for (int i=0;i<cnt_vse;i++) 
	{
	   if (vse[i].kolvo_chel==cs)
	   { 
		 printf("\n %d \t %s\t %s \t %f \t %f \t %f \n",i+1,vse[i]. FIO,vse[i].adres,vse[i].kolvo_chel,vse[i].tarif,vse[i].itogo);
	   }
	}
printf("\n\nNasmite lubuy klavishy");
}
//Функция вывода по Ф.и.о. квартиросъемщика
void vyvod_po_FIO_kvartirosem4ka()
{
clear_screen();
char cs[10];
int k;
printf("\n\nVvesti FIO_kvartirosem4ka: ");
scanf("%s",&cs);
clear_screen();
printf("OTBOR PO FIO_kvartirosem4ka =  %s",cs);
{  for (int i=0;i<cnt_vse;i++) {
	k=strncmp(vse[i].FIO,cs,10);
	   if (k==0){ printf("\n %d \t %s \t %s\t %f \t %f \t %f \n",i+1,vse[i].FIO,vse[i].adres,vse[i].kolvo_chel,vse[i].tarif,vse[i].itogo);}}}
printf("\n\nNasmite lubuy klavishy");
}
//Функция вывода по адресу квартиросъемщика
void vyvod_po_adresu()
{
clear_screen();
char cs[10];
int k;
printf("\n\nVvesti adres: ");
scanf("%s",&cs);
clear_screen();
printf("OTBOR PO adresu =  %s",cs);
{  for (int i=0;i<cnt_vse;i++) {
	k=strncmp(vse[i].FIO,cs,10);
	   if (k==0){ printf("\n %d \t %s \t %s\t %f \t %f \t %f \n",i+1,vse[i].FIO,vse[i].adres,vse[i].kolvo_chel,vse[i].tarif,vse[i].itogo);}}}
printf("\n\nNasmite lubuy klavishy");
}
//Функция вывода по тарифу
void vyvod_po_tarifu()
{
clear_screen();
float cs;
printf("\n\nVvesti tarif: ");
scanf("%f",&cs);
clear_screen();
printf("OTBOR PO tarifu =  %f",cs);
for (int i=0;i<cnt_vse;i++) 
	{
	   if (vse[i].tarif==cs)
		{ 
		   printf("\n %d \t %s \t %s\t %f \t %f \t %f \n",i+1,vse[i].FIO,vse[i].adres,vse[i].kolvo_chel,vse[i].tarif,vse[i].itogo);
		}
	}
printf("\n\nNasmite lubuy klavishy");
}

//Функция вывода по итогу
void vyvod_po_itogu()
{
clear_screen();
float cs;
printf("\n\n Vvesti itog: ");
scanf("%f",&cs);
clear_screen();
printf("OTBOR PO itogu =  %f",cs);
for (int i=0;i<cnt_vse;i++) 
	{
	  if (vse[i].itogo==cs)
		{ 
		  printf("\n %d \t %s \t %s\t %f \t %f \t %f \n",i+1,vse[i].FIO,vse[i].adres,vse[i].kolvo_chel,vse[i].tarif,vse[i].itogo);
		}
	}
printf("\n\nNasmite lubuy klavishy");
}
//ЗАПИСЬ В ФАЙЛ
int filezapis()
{
clear_screen();
fstream f;
f.open ("file.txt",ios::out|ios::trunc);
if (!f) //Ошибка?
	{ 
	   cerr<<endl<<"Error";
	    return 1;
	}
for(int i=0;i<cnt_vse;i++)
	{
	   f<<vse[i].kolvo_chel<<"\t"<<vse[i].tarif<<"\t"<<vse[i].itogo<<"\t"vse[i].adres<<"\t"<<vse[i].FIO<<endl;
	}
f.close();
 return 0;
}

Последний раз редактировалось MaTBeu; 13.01.2009 в 19:56.
bunya вне форума Ответить с цитированием
Старый 13.01.2009, 15:11   #3
bunya
Пользователь
 
Регистрация: 11.01.2009
Сообщений: 19
По умолчанию

продолжение
Код:
//ЧТЕНИЕ ИЗ ФАЙЛА
void filechtenie()
{
int i=0;
ifstream ifs("file.txt");  
cnt_vse=0; 
while(!ifs.eof())
	{  
ifs >> vse[cnt_vse].kolvo_chel >> vse[cnt_vse].tarif >> vse[cnt_vse].itogo >>vse[cnt_vse].FIO;   
cnt_vse++;   
	}
cnt_vse--;
ifs.close();
}

//СОРТИРОВКА по количеству человек
void sort_po_kolvo_chel()
{
int i,j;
float t=0;
char iz[10], ib[10];
float sk,sk_c;
for(i=0;i<(cnt_vse);i++)
	{
	  for(j=(cnt_vse-2);j>=i;j--)
		{
		  if (vse[j].kolvo_chel>vse[j+1].kolvo_chel)
			{
			  t=vse[j].kolvo_chel;
			  strcpy(iz,vse[j].FIO); 
			  strcpy(ib,vse[j].adres);
			  sk=vse[j].tarif;
			  sk_c=vse[j].itogo;

			  vse[j].kolvo_chel=vse[j+1].kolvo_chel;
			  strcpy(vse[j].FIO,vse[j+1].FIO);
			  strcpy(vse[j].adres,vse[j+1].adres);
			  vse[j].tarif=vse[j+1].tarif;
			  vse[j].itogo=vse[j+1].itogo;
									
			  vse[j+1].kolvo_chel=t;
			  strcpy(vse[j+1].FIO,iz);
			  strcpy(vse[j+1].adres,ib); 
			  vse[j+1].tarif=sk;
			  vse[j+1].itogo=sk_c;
			} 
						
		}
	}
}


//СОРТИРОВКА по тарифу
void sort_po_tarifu()
{
int i,j;
char iz[10], ib[10];
float sk, sk_c,t;
for(i=0;i<(cnt_vse);i++)
	{
	  for(j=(cnt_vse-2);j>=i;j--)
		{
		  if (vse[j].tarif>vse[j+1].tarif)
			{
			  t=vse[j].kolvo_chel;
			  strcpy(iz,vse[j].FIO); 
			  strcpy(ib,vse[j].adres);
			  sk=vse[j].tarif;
			  sk_c=vse[j].itogo;

			  vse[j].kolvo_chel=vse[j+1].kolvo_chel;
			  strcpy(vse[j].FIO,vse[j+1].FIO);
			  strcpy(vse[j].adres,vse[j+1].adres);
			  vse[j].tarif=vse[j+1].tarif;
			  vse[j].itogo=vse[j+1].itogo;
									
			  vse[j+1].kolvo_chel=t;
			  strcpy(vse[j+1].FIO,iz);
			  strcpy(vse[j+1].adres,ib); 
			  vse[j+1].tarif=sk;
			  vse[j+1].itogo=sk_c;
			} 
		}
	}
}

//СОРТИРОВКА по итогу
void sort_po_itogu()
{
int i,j;
char iz[10],ib[10];
float sk, sk_c, t;
for(i=0;i<(cnt_vse);i++)
	{
	  for(j=(cnt_vse-2);j>=i;j--)
		{
		  if (vse[j].itogo>vse[j+1].itogo)
			{
			  t=vse[j].kolvo_chel;
			  strcpy(iz,vse[j].FIO); 
			  strcpy(ib,vse[j].adres);
			  sk=vse[j].tarif;
			  sk_c=vse[j].itogo;

			  vse[j].kolvo_chel=vse[j+1].kolvo_chel;
			  strcpy(vse[j].FIO,vse[j+1].FIO);
			  strcpy(vse[j].adres,vse[j+1].adres);
			  vse[j].tarif=vse[j+1].tarif;
			  vse[j].itogo=vse[j+1].itogo;
									
			  vse[j+1].kolvo_chel=t;
			  strcpy(vse[j+1].FIO,iz);
			  strcpy(vse[j+1].adres,ib); 
			  vse[j+1].tarif=sk;
			  vse[j+1].itogo=sk_c;
			} 					
		}
	}
}

//СОРТИРОВКА по Ф.и.о. квартиросъемщика
void sort_po_FIO_kvartirosem4ka()
{
int i,j,k;
char iz[10], ib[10];
float sk, t, sk_c;
for(i=0;i<=(cnt_vse+2);i++)
	{
	  for(j=0;j<=(cnt_vse-i);j++)
		{
		  k=strcmp(vse[j].FIO,vse[j+1].FIO);
		  if (k>0)
			{
			  t=vse[j].kolvo_chel;
			  strcpy(iz,vse[j].FIO); 
			  strcpy(ib,vse[j].adres);
			  sk=vse[j].tarif;
			  sk_c=vse[j].itogo;

			  vse[j].kolvo_chel=vse[j+1].kolvo_chel;
			  strcpy(vse[j].FIO,vse[j+1].FIO);
			  strcpy(vse[j].adres,vse[j+1].adres);
			  vse[j].tarif=vse[j+1].tarif;
			  vse[j].itogo=vse[j+1].itogo;
									
			  vse[j+1].kolvo_chel=t;
			  strcpy(vse[j+1].FIO,iz);
			  strcpy(vse[j+1].adres,ib); 
			  vse[j+1].tarif=sk;
			  vse[j+1].itogo=sk_c;	
			} 				
		}
	}	
}

//СОРТИРОВКА по адресу квартиросъемщика
void sort_po_adresu_kvartirosem4ka()
{
int i,j,k;
char iz[10], ib[10];
float sk, t, sk_c;
for(i=0;i<=(cnt_vse+2);i++)
	{
	  for(j=0;j<=(cnt_vse-i);j++)
		{
		  k=strcmp(vse[j].adres,vse[j+1].adres);
		  if (k>0)
			{
			  t=vse[j].kolvo_chel;
			  strcpy(iz,vse[j].FIO); 
			  strcpy(ib,vse[j].adres);
			  sk=vse[j].tarif;
			  sk_c=vse[j].itogo;

			  vse[j].kolvo_chel=vse[j+1].kolvo_chel;
			  strcpy(vse[j].FIO,vse[j+1].FIO);
			  strcpy(vse[j].adres,vse[j+1].adres);
			  vse[j].tarif=vse[j+1].tarif;
			  vse[j].itogo=vse[j+1].itogo;
									
			  vse[j+1].kolvo_chel=t;
			  strcpy(vse[j+1].FIO,iz);
			  strcpy(vse[j+1].adres,ib); 
			  vse[j+1].tarif=sk;
			  vse[j+1].itogo=sk_c;	
			} 				
		}
	}	
}

Последний раз редактировалось MaTBeu; 13.01.2009 в 19:56.
bunya вне форума Ответить с цитированием
Старый 13.01.2009, 15:11   #4
bunya
Пользователь
 
Регистрация: 11.01.2009
Сообщений: 19
По умолчанию

//Меню вывода элементов по атрибутам
Код:
void vyvod_po_atributu()
{
clear_screen();
int n;
while(1)
	{
	  printf("\n po FIO_kvartirosem4ka    -1");
	  printf("\n po adresu_kvartirosem4ka -2");
	  printf("\n po kolvo_chelovek        -3");
	  printf("\n po tarifu                -4");
	  printf("\n po itogu                 -5");
	  printf("\n vihod                    -0 \n");
	  scanf("%d",&n);
	  clear_screen();
	  switch (n)
	  {
		case 0: return;
		case 1: vyvod_po_FIO_kvartirosem4ka(); break;
		case 2: vyvod_po_adresu(); break;
		case 3: vyvod_po_kolvo_chel(); break;
		case 4: vyvod_po_tarifu();break;
		case 5: vyvod_po_itogu();break;
		default: printf("\n Nazhata ne ta klavisha!!!");
	  }
	}
}

//Меню сортировки данных
void sortirovka()
{
clear_screen();
int n;
while(1)
	{	
	   printf("\n po FIO_kvartirosem4ka    -1");
	  printf("\n po adresu_kvartirosem4ka -2");
	  printf("\n po kolvo_chelovek        -3");
	  printf("\n po tarifu                -4");
	  printf("\n po itogu                 -5");
	  printf("\n vihod                    -0 \n");
	  scanf("%d",&n);
	  clear_screen();
	  switch (n)
	  {
		case 0: return;
		case 1: sort_po_FIO_kvartirosem4ka();prosmotr_zapisey(); break;
		case 2: sort_po_adresu_kvartirosem4ka();prosmotr_zapisey(); break;
		case 3: sort_po_kolvo_chel();prosmotr_zapisey(); break;
		case 4: sort_po_tarifu();prosmotr_zapisey(); break;
		case 5: sort_po_itogu();prosmotr_zapisey(); break;
		default: printf("\n Nazhata ne ta klavisha!!!");
	  }
	}
}

//Меню работы с файлами
void filework()
{
//clear_screen();
int n;
while(1)
	{	
	  printf("\n 4tenie  -1");
	  printf("\n zapis   -2");
	  printf("\n vyhod   -0 \n");
	  scanf("%d",&n);
	  clear_screen();
	  switch (n)
	  {
		case 0: return;
		case 1: filechtenie();prosmotr_zapisey(); break;
		case 2: filezapis(); break;
		default: printf("\n Nazhata ne ta klavisha!!!");
	  }
	}
}


//Главное меню
void menu()
{
int n;
while(1)
	{	
	  printf("\n faily      -1");
	  printf("\n dobavlenie -2");
	  printf("\n udalenie   -3");
	  printf("\n v_po_atr   -4");
	  printf("\n sort       -5");
	  printf("\n udal_vse   -6");
	  printf("\n prosm      -7");
	  printf("\n redaktir   -8");
	  printf("\n vyhod      -0 \n");
	  scanf("%d",&n);
	clear_screen();
	  switch (n)
	  {
	  case 0: return;
		case 1: filework();break;
		case 2: dobavlenie();prosmotr_zapisey();break;
		case 3: udalenie();prosmotr_zapisey();break;
		case 4: vyvod_po_atributu();prosmotr_zapisey(); break;
		case 5: sortirovka();prosmotr_zapisey(); break;
		case 6:fatal_delete();break;
		case 7:prosmotr_zapisey();break;
		case 8:update();break;
		default: printf("\n Nazhata ne ta klavisha!!!");
	  }
	}
}

//Основная программа
void main()
{
vse=new  kommunalnye_uslugi[kollichestvo];
prosmotr_zapisey();
menu();

}

Последний раз редактировалось MaTBeu; 13.01.2009 в 19:57.
bunya вне форума Ответить с цитированием
Старый 13.01.2009, 20:13   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Вы вообще нормально соображаете? Вы что, действительно думаете, что в этом коде реально найти вашу ошибку??? Кода блин на 4 страницы!!!
Зачем выкладывать весь код? Можно же просто выложить пару кусков именно где ошибка. Такое впечатление, что люди думать вообще отказываются.

По сабжу:
В функции записи в файл нужно строку
Код:
fstream f;
заменить на
Код:
ofstream f;
Последний раз я вам помог.
MaTBeu вне форума Ответить с цитированием
Старый 14.01.2009, 09:42   #6
bunya
Пользователь
 
Регистрация: 11.01.2009
Сообщений: 19
По умолчанию

из пары кусков я думаю понять нельзя. ошибка выдаётся в строке f<<vse[i].kolvo_chel<<"\t"<<vse[i].tarif<<"\t"<<vse[i].itogo<<"\t"vse[i].adres<<"\t"<<vse[i].FIO<<endl;
bunya вне форума Ответить с цитированием
Старый 14.01.2009, 19:41   #7
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
Сообщение от bunya
из пары кусков я думаю понять нельзя
Могли бы выложить описание структуры и функцию записи.

По сабжу:
Ошибка в том, что вы забыли написать <<.
Замените вашу строку на вот эту
Код:
f<<vse[i].kolvo_chel<<"\t"<<vse[i].tarif<<"\t"<<vse[i].itogo<<"\t"<<vse[i].adres<<"\t"<<vse[i].FIO<<endl;
ПыСы: и на будущее. Пользуйтесь тегом CODE. Написали код в сообщении - выделили полностью и нажмите на изображение решетки. Так будет более читабельно и понятно.

Последний раз редактировалось MaTBeu; 14.01.2009 в 19:45.
MaTBeu вне форума Ответить с цитированием
Старый 14.01.2009, 22:28   #8
bunya
Пользователь
 
Регистрация: 11.01.2009
Сообщений: 19
По умолчанию

спасибо большое-большое, всё работает)))))))))))
bunya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибки Satorin Общие вопросы Delphi 4 25.12.2008 21:35
помогите исправить ошибки в задаче на С++ Wia Помощь студентам 4 14.12.2008 16:09
помогите исправить ошибки kermit Помощь студентам 1 21.06.2008 10:44
помогите исправить ошибки в программе... VDK23 Помощь студентам 1 17.04.2008 13:05
Помогите исправить ошибки ...С++ Настенька Помощь студентам 1 25.03.2007 23:30