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

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

Войти
Регистрация
Восстановить пароль
 
Katerina Seliva
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
#1

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

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

Помогите, пожалуйста=)

Задание: Используя класс, который преобразует дюймы в мм, создайте: функцию извлечения, предлагающую пользователю ввести число дюймов. функцию вставки для вывода на экран числа дюймов и мм.
У меня две проблемы: выводит ошибки [ 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2011, 21:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти и исправить ошибки в коде (C++):

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

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

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

Найти и исправить ошибки в коде - C++
Предупреждение 8 warning C4552: &lt;=: оператор не имеет результата; требуется оператор с побочным действием C:\Users\student\Desktop\Языки...

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

Найти и исправить ошибки в коде - C++
поиогите исправить ошибки #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; ...

11
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
01.05.2011, 00:11 #2
23, 30 строки -- убрать ";" в конце объявления функции
32 строка -- добавить "<<" перед "endl"
35 строка -- заменить "main(void)" на "int main(int argc, char *argv[])"
1
Katerina Seliva
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
ValeryLaptev
Эксперт С++
1046 / 825 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
01.05.2011, 11:06 #4
Оставьте только iostream в инклудах. И кстати, какая среда программирования?
1
Katerina Seliva
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 11:14  [ТС] #5
Убрала, но это ничего не изменило, программирую на Microsoft Visual C++ 6.0
0
ValeryLaptev
Эксперт С++
1046 / 825 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
01.05.2011, 11:39 #6
Тогда уберите fstream и напишите iostream.h
1
prazuber
110 / 110 / 3
Регистрация: 29.04.2010
Сообщений: 240
01.05.2011, 11:46 #7
ValeryLaptev, ой насоветуете сейчас... нету в MSVS iostream.h.


Katerina Seliva, у меня ваш код компилится нормально, разве что варнинг на не инициализированную переменную inches в мейне. Возможно, ваш компилятор путается между inches как переменной и как полем класа inches_to_mm, лучше в мейне переменную назвать по-другому как-то. Ну и инициализировать.
1
Katerina Seliva
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 11:49  [ТС] #8
Когда сделала iostream.h, oшибки убрались, запускается программа и появляется вот такое:
0
Миниатюры
Найти и исправить ошибки в коде  
ValeryLaptev
Эксперт С++
1046 / 825 / 48
Регистрация: 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
Katerina Seliva
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
ValeryLaptev
Эксперт С++
1046 / 825 / 48
Регистрация: 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
Katerina Seliva
234 / 43 / 4
Регистрация: 05.01.2011
Сообщений: 197
01.05.2011, 13:40  [ТС] #12
Урааа!!! Спасибо, теперь всё работает!
0
01.05.2011, 13:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2011, 13:40
Привет! Вот еще темы с ответами:

Найти и исправить ошибки в коде - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int number_of_students = 0, number_of_subjects =...

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

Найти и исправить ошибки в коде - C++
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)) ShowMessage(&quot;trehznacnoe cislo&quot;); ...

Найти и исправить ошибки в коде - C++
SOS! Что сделал не так? #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int q; cout «...


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

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

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