Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
1

Найти и исправить ошибки в коде

30.04.2011, 21:57. Показов 1181. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста=)

Задание: Используя класс, который преобразует дюймы в мм, создайте: функцию извлечения, предлагающую пользователю ввести число дюймов. функцию вставки для вывода на экран числа дюймов и мм.
У меня две проблемы: выводит ошибки [ missing function header ] и [ 'operator <<' is ambiguous ]
А также не особо понимаю, какие параметры нужно ввести в тело программы, там где main

Заранее спасибо!


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
#include "stdafx.h"
#include <iostream>
#include <ostream>
#include <fstream>
#include <istream>
 
using namespace std;
 
 
class inches_to_mm
{
double inches;
double mm;
public:
    void set(double in)
    { inches=in;
    mm=in*25.4;
    }
friend ostream & operator <<(ostream & stream, inches_to_mm ob);
friend istream & operator >>(istream & stream, inches_to_mm & ob);
};
 
istream & operator >>(istream & stream, inches_to_mm & ob);
{
cout <<"Vvedite skolko dujm";
stream>> ob.inches;
return stream;
};
 
ostream & operator <<(ostream & stream, inches_to_mm ob);
{
stream <<"Vy vveli"<<ob.inches<<"dujm i"<<ob.mm<<"mm"endl;
return stream;
}
main(void)
{
inches_to_mm inches;
cout << inches;
cin >> inches;
cout << inches;
return 0;
            
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2011, 21:57
Ответы с готовыми решениями:

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h...

Найти ошибки в коде и исправить эти ошибки - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить...

Найти ошибки в коде и исправить эти ошибки
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private:...

Найти и исправить ошибки в коде
Не могу найти ошибку в коде и выбивает кучу абсурдных ошибок #include&quot;stdafx.h&quot; #include...

11
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,588
01.05.2011, 00:11 2
23, 30 строки -- убрать ";" в конце объявления функции
32 строка -- добавить "<<" перед "endl"
35 строка -- заменить "main(void)" на "int main(int argc, char *argv[])"
1
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 10:57  [ТС] 3
Спасибо, одна ошибки про header ушла, но пришла другая:
'inches' : cannot access private member declared in class 'inches_to_mm'
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
#include "stdafx.h"
#include <iostream>
#include <ostream>
#include <fstream>
#include <istream>
 
using namespace std;
 
 
class inches_to_mm
{
double inches;
double mm;
public:
    void set(double in)
    { inches=in;
    mm=in*25.4;
    }
friend ostream & operator <<(ostream & stream, inches_to_mm ob);
friend istream & operator >>(istream & stream, inches_to_mm & ob);
};
 
istream & operator >>(istream & stream, inches_to_mm & ob)
{
cout <<"Vvedite skolko dujm";
stream>> ob.inches;
return stream;
};
 
ostream & operator <<(ostream & stream, inches_to_mm ob)
{
stream <<"Vy vveli"<<ob.inches<<"dujm i"<<ob.mm<<"mm"<<endl;
return stream;
}
 
int main(int argc, char *argv[])
{
inches_to_mm inches;
cout << inches;
cin >> inches;
cout << inches;
return 0;
            
}
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
01.05.2011, 11:06 4
Оставьте только iostream в инклудах. И кстати, какая среда программирования?
1
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 11:14  [ТС] 5
Убрала, но это ничего не изменило, программирую на Microsoft Visual C++ 6.0
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
01.05.2011, 11:39 6
Тогда уберите fstream и напишите iostream.h
1
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
01.05.2011, 11:46 7
ValeryLaptev, ой насоветуете сейчас... нету в MSVS iostream.h.


Katerina Seliva, у меня ваш код компилится нормально, разве что варнинг на не инициализированную переменную inches в мейне. Возможно, ваш компилятор путается между inches как переменной и как полем класа inches_to_mm, лучше в мейне переменную назвать по-другому как-то. Ну и инициализировать.
1
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 11:49  [ТС] 8
Когда сделала iostream.h, oшибки убрались, запускается программа и появляется вот такое:
Миниатюры
Найти и исправить ошибки в коде  
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
01.05.2011, 12:15 9
Цитата Сообщение от PraZuBeR Посмотреть сообщение
ValeryLaptev, ой насоветуете сейчас... нету в MSVS iostream.h.
Вы не обратили внимания, что у нее VC++6. Это система 1998 года, создавалась еще ДО стандарта. И там старая система ввода-вывода работает гораздо лучше, чем новая.
Я сам похлебал в свое время проблем с этим. Поэтому, пусть iostream.h напишет.

Добавлено через 3 минуты
Цитата Сообщение от Katerina Seliva Посмотреть сообщение
Когда сделала iostream.h, oшибки убрались, запускается программа и появляется вот такое:
Ну, это уже легко.
сначала cin >> inches;
Потом inches.set(inches);
потом cout << inches;
1
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 12:42  [ТС] 10
Вот как на данный момент выглядит программа, с учетом всех ошибок

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
#include "stdafx.h"
#include "iostream.h"
 
 
 
 
class dujms_to_mm
{
double inches;
double mm;
public:
    void set(double in)
    { inches=in;
    mm=in*25.4;
    }
friend ostream & operator <<(ostream & stream, dujms_to_mm ob);
friend istream & operator >>(istream & stream, dujms_to_mm & ob);
};
 
istream & operator >>(istream & stream, dujms_to_mm & ob)
{
cout <<"Vvedite skolko dujm: ";
stream>> ob.inches;
return stream;
};
 
ostream & operator <<(ostream & stream, dujms_to_mm ob)
{
stream <<"Vy vveli: "<<ob.inches<<" dujm i "<<ob.mm<<"mm"<<endl;
return stream;
}
 
int main(int argc, char *argv[])
{
dujms_to_mm inches;
cin >> inches;
inches.set(inches);
cout << inches;
      
return 0;
            
}

Ошибка вылезла: 'set' : cannot convert parameter 1 from 'class dujms_to_mm' to 'double'
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
01.05.2011, 13:11 11
Цитата Сообщение от Katerina Seliva Посмотреть сообщение
Вот как на данный момент выглядит программа, с учетом всех ошибок

Ошибка вылезла: 'set' : cannot convert parameter 1 from 'class dujms_to_mm' to 'double'
Вы вводите объект класса dujms_to_mm, а в set - параметр типа double. Надо так:
в классе:
Код
void set()
    {
    mm=inches*25.4;
    }
В main:
Код
dujms_to_mm inches;
cin >> inches;
inches.set();
cout << inches;
1
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 13:40  [ТС] 12
Урааа!!! Спасибо, теперь всё работает!
0
01.05.2011, 13:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2011, 13:40
Помогаю со студенческими работами здесь

Найти и исправить ошибки в коде
Всем доброго времени суток. Посмотрите что за ошибки в программе у меня компилятор 8 ошибок выдает...

Найти и исправить ошибки в коде
помогите исправить ошибки , пожалуйста... Сделать файл с информацией о преподавателях.Вывести на...

Найти и исправить ошибки в коде
Скажите что значат данные ошибки? {вырезано}

Найти и исправить ошибки в коде
int ch; cin &gt;&gt; ch; if(((ch &gt; 99 &amp;&amp; ch &lt; 1000) || (ch &gt; -1000 &amp;&amp; ch &lt; -99)) &amp;&amp;!(ch % 2)) ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru