Другие языки программирования и технологии
Это код из книги С++ для чайников.Вроде все прилежно переписал но не работает ни черта,что не так?
// программа для преобразования // градусов Цельсия в градусы Фаренгейта // Fahrenheit = NCelsius * (212-32)/100 + 32 // #include <stdio.h> #include <iostream.h> int main(int nNumberofArgs, char* pszArgs[ ]) { int nNCelsius; cout << " Введите температуру по Цельсию: "; cin >> nNCelsius; int nNFactor; nNFactor = 212 - 32; int nFahrenheit ; nFahrenheit = nNFactor * nNCelsius/100 + 32; cout<< "Температура по Фаренгейту: "; cout<< nFahrenheit; return 0; }
Во-первых, данный код не соответсвует стандарту С++. Скорей всего вы его извлекли из старого учебника. Поэтому при использовании нового компилятора код не будет компилироваться.
Я не знаю, каким вы пользуетесь компилятором, и насколько он совместим со стандартом С++, поэтому я буду просто перечислять недостатки кода, а вы уж сами проверяйте, что ваш компилятор проглатывает, а что нет.
Во-первых, все стандартные заголовки в С++ используются без расширения .h. Заголовки, перешедшие из С в С++ пишутся с доабвлением буквы 'c' перед именем заголовка С.
Итак должно быть
#include <iostream>
Заголовок <stdio.h>, который правильно писать в С++ как <cstdio> в вашей программе совершенно не нужен, так как ни одно объявление из него не используется.
Имена cin и cout находятся в пространстве имен std, поэтому перед ними нужно писать префикс, например
std::cin
std::cout
Или вы говорите компилятору, что будете использовать пространство имен std с помощью директивы
using std;
которую можно поместить перед main() либо после нее. Тогда префикс std писать не надо.
Если это исправите, то должно компилироваться. Либо сообщайте сообщение об ошибке компилятора, чтобы знать, что у вас не компилируется!
Кстати сказать, книга у вас крайне ПЛОХАЯ. Не используйте ее. Лучше купите книгу Дж. Либерти "Изучи С++ самостоятельно за 21 день".
Я не знаю, каким вы пользуетесь компилятором, и насколько он совместим со стандартом С++, поэтому я буду просто перечислять недостатки кода, а вы уж сами проверяйте, что ваш компилятор проглатывает, а что нет.
Во-первых, все стандартные заголовки в С++ используются без расширения .h. Заголовки, перешедшие из С в С++ пишутся с доабвлением буквы 'c' перед именем заголовка С.
Итак должно быть
#include <iostream>
Заголовок <stdio.h>, который правильно писать в С++ как <cstdio> в вашей программе совершенно не нужен, так как ни одно объявление из него не используется.
Имена cin и cout находятся в пространстве имен std, поэтому перед ними нужно писать префикс, например
std::cin
std::cout
Или вы говорите компилятору, что будете использовать пространство имен std с помощью директивы
using std;
которую можно поместить перед main() либо после нее. Тогда префикс std писать не надо.
Если это исправите, то должно компилироваться. Либо сообщайте сообщение об ошибке компилятора, чтобы знать, что у вас не компилируется!
Кстати сказать, книга у вас крайне ПЛОХАЯ. Не используйте ее. Лучше купите книгу Дж. Либерти "Изучи С++ самостоятельно за 21 день".
Сергей Солдатов
DEV C++ использую.За совет про книжку спасибо
Прогнал сейчас твой текст на Dev-C++. Все прекрасно работает.
Мое предположение - не умеешь работать со средой. Поставь перед return 0;
cтрочку getchar(); getchar();
Возможно, поможет.
Мое предположение - не умеешь работать со средой. Поставь перед return 0;
cтрочку getchar(); getchar();
Возможно, поможет.
имхо, код замудрен чуток)) ) много переменных, которые можно обойти и описаны по пути обработки) ДОС частенько ругается на это)) ) попробуй вычислять перед выводом. . и вообще так не проще?
#include <stdio.h>
#include <iostream.h>
void main()
{
int nNCelsius,nNFactor,nFahrenheit;
cout << " Введите температуру по Цельсию: ";
cin >> nNCelsius;
nNFactor = 212 - 32;
nFahrenheit = nNFactor * nNCelsius/100 + 32;
cout<< "Температура по Фаренгейту: ";
cout<< nFahrenheit;
return 0;
}
либо я чет не понял?
#include <stdio.h>
#include <iostream.h>
void main()
{
int nNCelsius,nNFactor,nFahrenheit;
cout << " Введите температуру по Цельсию: ";
cin >> nNCelsius;
nNFactor = 212 - 32;
nFahrenheit = nNFactor * nNCelsius/100 + 32;
cout<< "Температура по Фаренгейту: ";
cout<< nFahrenheit;
return 0;
}
либо я чет не понял?
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int nNCelsius;
cout << " Введите температуру по Цельсию: ";
cin >> nNCelsius;
cout<< "Температура по Фаренгейту: " << 1.8 * nNCelsius + 32;
_getch();
return 0;
}
что не понятново? ?
собирайте отладочную версию (debug)
#include <iostream>
using namespace std;
int main()
{
int nNCelsius;
cout << " Введите температуру по Цельсию: ";
cin >> nNCelsius;
cout<< "Температура по Фаренгейту: " << 1.8 * nNCelsius + 32;
_getch();
return 0;
}
что не понятново? ?
собирайте отладочную версию (debug)
Сергей Солдатов
))))))))))) Ну мне все непонятно,я по книжке писал)).Но спасибо
Похожие вопросы
- Книга c++ для чайников устарела?
- Учусь програмировать на C++ по книге "C++ для чайников".Проблема.
- помогите переписать код с паскаля на c++
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .
- Вопрос по основам машинного кода и бинарного кода. Как это работает в своей основе?
- Всем привет, помогите в коде разобраться С++, вылетает ошибка, вроде все правильно..
- Люди подскажите "ЧАЙНИКУ",как быстрей и удобней видеокассету переписать на DVD диск????
- Напишите подробно, большая просьба. Как из " Моих документов" переписать на флешку текст. Имейте ввиду - я чайник. ПО
- PHP и MySQL. Пишу вот такой код, как в книге написано, но не работает. В чем причина?
- Почему работает этот код?