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

Ошибка при компиляции - C++

Восстановить пароль Регистрация
 
SaintGS
2 / 2 / 1
Регистрация: 14.11.2013
Сообщений: 32
14.11.2013, 22:42     Ошибка при компиляции #1
Здорова всем!
Такая проблема – нужно написать прогу на с++
Я нашел в нете кучу программ уже готовых, но они не работают.
Вообщем вот, допустим код программы «рабочий»
Но он у мен не работает. Пользуюсь «дев с++ 4.9.9.2»
Ошибка
«7 C:\Dev-Cpp\include\c++\3.4.2\backward\iostream.h:31, from main.cpp In file included from C:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31, from main.cpp
main.cpp from main.cpp
32:2 C:\Dev-Cpp\include\c++\3.4.2\backward\backward_warning.h #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
main.cpp `main' must return `int'
Makefile.win [Build Error] [main.o] Error 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
#include <iostream>
#include <vector>
#include <string.h>
 
#include <stdlib.h>
#include <iostream.h>
/*ОПИСЫВАЕМАЯ СТРУКТУРА*/
struct Shop
{
 char Name[30];
 int Cena;
 char Prodav[30];
 char Pokup[30];
 int Date[3];
};
 
 
/*ФУНКЦИЯ ОБЕСПЕЧИВАЕТ ВЫВОД ДАННЫХ НА ЭКРАН*/
void ShowData(Shop *M,int N)
{
 system("CLS");
 cout<<"НАЗВАНИЕ          ЦЕНА          ПРОДАВЕЦ          ПОКУПАТЕЛЬ          ДАТА ПРОДАЖИ"<<"nn";
 for (int i=0;i<N;i++)
  {
   cout<<M[i].Name;
   cout<<"r?33[20C";
   cout<<M[i].Cena;
   cout<<"r?33[30C";
   cout<<M[i].Prodav;
   cout<<"r?33[50C";
   cout<<M[i].Pokup;
   cout<<"r?33[70C";
   cout<<M[i].Date[0]<<"."<<M[i].Date[1]<<"."<<M[i].Date[2]<<"n";
  }
  cout<<"n";
}
 
 
/*ФУНКЦИЯ ЗАНОСИТ ДАННЫЕ В СТРУКТУРУ*/ 
void GetData(Shop *M,int N)
{
 
 cin.ignore();
 for (int i=0;i<N;i++)
  {
   cout<<"n";
   cout<<"НАЗВАНИЕ: ";cin.getline(M[i].Name,30);
 
   cout<<"ЦЕНА:  ";   cin>>M[i].Cena;
   cin.ignore();
 
   cout<<"ПРОДАВЕЦ:        ";cin.getline(M[i].Prodav,30);
   cout<<"ПОКУПАТЕЛЬ: ";cin.getline(M[i].Pokup,30);
 
   cout<<"ДАТА   ";
   cin>>M[i].Date[0];cin.ignore();
   cin>>M[i].Date[1];cin.ignore();
   cin>>M[i].Date[2];cin.ignore();
  }
}
 
 
 /*ГЛАВНАЯ ФУНКЦИЯ*/
void main()
{
 system("CLS");
    int N; cout<<"ВВЕДИ  N: ";cin>>N;
    Shop *M=new Shop[N]; //Динамическое выделение памяти под N структур
       GetData(M,N); //Занесение данных в структуры
       ShowData(M,N);
    delete []M; //Освобождение памяти
 system("PAUSE");
 }
Как исправить ошибку в ДЕВ С++ или дайте ссыль на маленькую прогу аналогичную, где все будет нормал.?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
WebMacTep
 Аватар для WebMacTep
21 / 21 / 1
Регистрация: 03.10.2013
Сообщений: 128
14.11.2013, 23:17     Ошибка при компиляции #2
SaintGS,

C++
1
void main()
заменить на

C++
1
int main()
и

C++
1
#include <iostream>
заменить на

C++
1
#include <iostream.h>
P.S.: Это мои личные догадки. Возможно, они не имеют никакого отношения к сути проблемы.
FreeMan108
 Аватар для FreeMan108
120 / 120 / 6
Регистрация: 04.03.2013
Сообщений: 368
14.11.2013, 23:23     Ошибка при компиляции #3
С каких пор main имеет тип void в Dev?

Добавлено через 2 минуты
Цитата Сообщение от WebMacTep Посмотреть сообщение
1
#include <iostream>
заменить на
Код C++
1
#include <iostream.h>
Здесь в принципе без разницы.
WebMacTep
 Аватар для WebMacTep
21 / 21 / 1
Регистрация: 03.10.2013
Сообщений: 128
14.11.2013, 23:25     Ошибка при компиляции #4
Возможно, ещё добавить в int main() в конце return 0;

FreeMan108, основывался на:
Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>.
FreeMan108
 Аватар для FreeMan108
120 / 120 / 6
Регистрация: 04.03.2013
Сообщений: 368
14.11.2013, 23:25     Ошибка при компиляции #5
Советую добавить еще вот это

C++
1
#include <locale.h>
и здесь

C++
1
2
3
4
5
int main ()
{
    setlocale (NULL, "RUS");
    ...
}
Иначе будет мусор, а не русский язык!
SaintGS
2 / 2 / 1
Регистрация: 14.11.2013
Сообщений: 32
14.11.2013, 23:29  [ТС]     Ошибка при компиляции #6
как ни странно, но помогло
void main()
заменить на
int main()
FreeMan108
 Аватар для FreeMan108
120 / 120 / 6
Регистрация: 04.03.2013
Сообщений: 368
14.11.2013, 23:29     Ошибка при компиляции #7
В Dev можно и так и так. Хотя может быть в других компиляторах по другому.
SaintGS
2 / 2 / 1
Регистрация: 14.11.2013
Сообщений: 32
14.11.2013, 23:42  [ТС]     Ошибка при компиляции #8
А не посмотрите ещё один код программы. Я его взял с этого же сайта, но ответа так и не дали.
Ругается в строке «if (k>temp) {t=m[i]; temp=k;c_num=i;}», если компилировать в С++
Я так понимаю проблема опять же в "voidдах"

ошибки
main.cpp In function `void Print(Ceh*, int)':
main.cpp name lookup of `i' changed for new ISO `for' scoping
main.cpp using obsolete binding at `i'
main.cpp `cout' undeclared (first use this function)


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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define S_FAM 10
#define size 5
struct Ceh {
unsigned int zp;
unsigned int staj;
char fam[S_FAM];
};
 
void Print(Ceh *m, int size_m);
void Input(Ceh *m, int size_m);
 
int main()
{
Ceh mas[size];
Input(mas,size);
Print(mas,size);
getch();
return 0;
}
 
void Print(Ceh *m, int size_m)
{ double temp=(m[0].zp)/(m[0].staj),k;
int c_num=0;
Ceh t; 
t=m[0];
printf("Rabotnik s naibolshej zarplatoj i naimenshimstajem\n");
for (int i=0;i<size_m;i++)
    k=(m[i].zp)/(m[i].staj);
     if (k>temp) {t=m[i]; temp=k;c_num=i;}
     if (k==temp && m[i].zp<t.zp)  {t=m[i];c_num=i;}
     cout<<m[c_num].staj<<m[c_num].zp;
     cout<<endl;
printf("\n");
printf("Familija rabotnika: %s", m[i].fam); printf("\n");
printf("Zarplata: %d",m[i].zp); printf("\n");
printf("staj: %d", m[i].staj);
}
 
void Input(Ceh *m, int size_m){
printf("Input Ceh Mas\n");
     for(int i=0;i<size_m;i++){
          printf("\n");
          printf("Vvedite familiju rabotnika");
          scanf("%s",&m[i].fam);
          printf("Vvedite zarplatu");
          scanf("%d",&m[i].zp);
          printf("Vvedite staj");
          scanf("%d", &m[i].staj);
          }
          printf("\n");          }
Yuri_935
5 / 5 / 1
Регистрация: 17.04.2013
Сообщений: 15
14.11.2013, 23:48     Ошибка при компиляции #9
SaintGS,
Вот исправленный код, проверил все работает
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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define S_FAM 10
#define size 5
struct Ceh {
unsigned int zp;
unsigned int staj;
char fam[S_FAM];
};
 
void Print(Ceh *m, int size_m);
void Input(Ceh *m, int size_m);
using namespace std;
 
int main()
{
Ceh mas[size];
Input(mas,size);
Print(mas,size);
getch();
return 0;
}
 
void Print(Ceh *m, int size_m)
{ double temp=(m[0].zp)/(m[0].staj),k;
int c_num=0;
Ceh t; 
t=m[0];
printf("Rabotnik s naibolshej zarplatoj i naimenshimstajem\n");
for (int i=0;i<size_m;i++)
{
    k=(m[i].zp)/(m[i].staj);
     if (k>temp) {t=m[i]; temp=k;c_num=i;}
     if (k==temp && m[i].zp<t.zp)  {t=m[i];c_num=i;}
     cout<<m[c_num].staj<<m[c_num].zp;
     cout<<endl;
 
printf("\n");
printf("Familija rabotnika: %s", m[i].fam); printf("\n");
printf("Zarplata: %d",m[i].zp); printf("\n");
printf("staj: %d", m[i].staj);
}
}
 
void Input(Ceh *m, int size_m){
printf("Input Ceh Mas\n");
     for(int i=0;i<size_m;i++){
          printf("\n");
          printf("Vvedite familiju rabotnika");
          scanf("%s",&m[i].fam);
          printf("Vvedite zarplatu");
          scanf("%d",&m[i].zp);
          printf("Vvedite staj");
          scanf("%d", &m[i].staj);
          }
          printf("\n");          }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2013, 23:55     Ошибка при компиляции
Еще ссылки по теме:

C++ Ошибка при компиляции
C++ Ошибка памяти при выполнении, при компиляции не выводит ошибки
C++ Ошибка при компиляции

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

Или воспользуйтесь поиском по форуму:
SaintGS
2 / 2 / 1
Регистрация: 14.11.2013
Сообщений: 32
14.11.2013, 23:55  [ТС]     Ошибка при компиляции #10
Действительно работает
только пришлось удалить библиотеку stdafx

Сейчас нужно довести до ума программу по условию -Дана информация о пяти рабочих цеха. Запись имеет вид: фамилия, размер зарплаты, стаж работы. Вывести данные о рабочем с наибольшей зарплатой и наименьшим стажем.

И можно сдавать работу
Yandex
Объявления
14.11.2013, 23:55     Ошибка при компиляции
Ответ Создать тему
Опции темы

Текущее время: 11:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru