Трудно сказать.
C++: преобразование градусов Цельсия в градусы Фаренгейта
Модератор: Модераторы разделов
-
- Сообщения: 1171
- Статус: Профан
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
10% — это 0,1.
© Bizdelnick
© Bizdelnick
-
- Сообщения: 1171
- Статус: Профан
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
А где конкретно это прописать в .gvimrc? Запуск программы по F9 у меня сейчас выглядит следующим образом:
Код: Выделить всё
function! BindF9_C()
if filereadable("Makefile")
set makeprg=make
map <f9> :w<cr>:make<cr>:cw<cr>:!./%<<cr>
imap <f9> <esc>:w<cr>:make<cr>:cw<cr>:!./%<<cr>
else
map <f9> :w<cr>:make %:r<cr>:cw<cr>:!./%<<cr>
imap <f9> <esc>:w<cr>:make %:r<cr>:cw<cr>:!./%<<cr>
endif
endfunction
au FileType c,cc,cpp,h,hpp,s call BindF9_C()
10% — это 0,1.
© Bizdelnick
© Bizdelnick
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
Замените :!./% на, например, :!xterm -e './%; read'
read — ждать ввода, можно sleep поставить, как удобнее будет.
read — ждать ввода, можно sleep поставить, как удобнее будет.
-
- Сообщения: 1171
- Статус: Профан
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
/bin/bash: -c: line 0: syntax error near unexpected token `newline'
/bin/bash: -c: line 0: `xterm -e './Документы/CPP/conversion.cpp; read'<'
10% — это 0,1.
© Bizdelnick
© Bizdelnick
-
- Сообщения: 1171
- Статус: Профан
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
Подправил .gvimrc (попутно выяснив, что xterm в CentOS отсутствует):
Но в итоге терминал запустился в следующем виде:
Код: Выделить всё
function! BindF9_C()
if filereadable("Makefile")
set makeprg=make
map <f9> :w<cr>:make<cr>:cw<cr>:!gnome-terminal -e './%; read'<cr>
imap <f9> <esc>:w<cr>:make<cr>:cw<cr>:!gnome-terminal -e './%; read'<cr>
else
map <f9> :w<cr>:make %:r<cr>:cw<cr>:!gnome-terminal -e './%; read'<cr>
imap <f9> <esc>:w<cr>:make %:r<cr>:cw<cr>:!gnome-terminal -e './%; read'<cr>
endif
endfunction
au FileType c,cc,cpp,h,hpp,s call BindF9_C()
Но в итоге терминал запустился в следующем виде:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
10% — это 0,1.
© Bizdelnick
© Bizdelnick
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
В первом, там не %, а %<, не заметил.
У gnome-terminal ключи могут быть другие. Посмотрите справку по gnome-terminal.
У gnome-terminal ключи могут быть другие. Посмотрите справку по gnome-terminal.
-
- Сообщения: 1171
- Статус: Профан
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
Установил xterm, но при запуске по F9 было выдано:
При этом xterm запустился, но в его окне было лишь: bash: ./ /CPP/conversion.cpp:
Warning: Cannot convert string "nil2" to type FontStruct
xterm: cannot load font -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-is
o10646-1
При этом xterm запустился, но в его окне было лишь: bash: ./ /CPP/conversion.cpp:
10% — это 0,1.
© Bizdelnick
© Bizdelnick
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
Так выглядит?
У меня так норм запускается.
Код: Выделить всё
function! BindF9_C()
if filereadable("Makefile")
set makeprg=make
map <f9> :w<cr>:make<cr>:cw<cr>:!xterm -e './%<; read'<cr>
imap <f9> <esc>:w<cr>:make<cr>:cw<cr>:!xterm -e './%<; read'<cr>
else
map <f9> :w<cr>:make %:r<cr>:cw<cr>:!xterm -e './%<; read'<cr>
imap <f9> <esc>:w<cr>:make %:r<cr>:cw<cr>:!xterm -e './%<; read'<cr>
endif
endfunction
au FileType c,cc,cpp,h,hpp,s call BindF9_C()
У меня так норм запускается.
-
- Сообщения: 1171
- Статус: Профан
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
NickLion писал(а): ↑18.05.2014 14:30Так выглядит?
Код: Выделить всё
function! BindF9_C() if filereadable("Makefile") set makeprg=make [b]map <f9> :w<cr>:make<cr>:cw<cr>:!xterm -e './%<; read'<cr> imap <f9> <esc>:w<cr>:make<cr>:cw<cr>:!xterm -e './%<; read'<cr>[/b] else [b]map <f9> :w<cr>:make %:r<cr>:cw<cr>:!xterm -e './%<; read'<cr> imap <f9> <esc>:w<cr>:make %:r<cr>:cw<cr>:!xterm -e './%<; read'<cr>[/b] endif endfunction au FileType c,cc,cpp,h,hpp,s call BindF9_C()
У меня так норм запускается.
Поставил < перед './% в итоге выдаётся сообщение:
Warning: Cannot convert string "nil2" to type FontStruct
xterm: cannot load font -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-is
o10646-1
При этом в окне xterm видны лишь вводимые числа, текста сообщений не видно.
10% — это 0,1.
© Bizdelnick
© Bizdelnick
-
- Сообщения: 1171
- Статус: Профан
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
NickLion писал(а): ↑18.05.2014 14:30Так выглядит?
Код: Выделить всё
function! BindF9_C() if filereadable("Makefile") set makeprg=make map <f9> :w<cr>:make<cr>:cw<cr>:!xterm -e './%<; read'<cr> imap <f9> <esc>:w<cr>:make<cr>:cw<cr>:!xterm -e './%<; read'<cr> else map <f9> :w<cr>:make %:r<cr>:cw<cr>:!xterm -e './%<; read'<cr> imap <f9> <esc>:w<cr>:make %:r<cr>:cw<cr>:!xterm -e './%<; read'<cr> endif endfunction au FileType c,cc,cpp,h,hpp,s call BindF9_C()
У меня так норм запускается.
А в МСВС работает нормально.
10% — это 0,1.
© Bizdelnick
© Bizdelnick
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
Насколько я понимаю, это уже в xterm проблема. Он там на шрифты что-то ругается.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
потому что в разных системах нужно СВОЙ ман читать. И если в мане написано #include <stdlib.h>, значит НУЖНО. Или юзать autotools, которая сама проверяет в ./configure.
1. :!xterm -e %
2. повесить это на F9
-
- Сообщения: 1171
- Статус: Профан
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
С учётом указанных выше рекомендаций, привёл код программы к следующему виду:
Во время работы полученного бинарика обратил внимание, что при вводе некорректного значения переменной nNCelsius, например, два, данная переменная обнуляется и выводится результат: 32.
Каким образом можно реализовать возможность вывода сообщения "Ошибка!", при вводе некорректного значения?
Код: Выделить всё
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
system("clear");
double nNCelsius;
cout << "\x1B[32;1mВведите температуру по Цельсию:\x1B[0m ";
cout << "\x1B[33;1m";
cin >> nNCelsius;
cout << "\x1B[0m";
double nFahrenheit;
nFahrenheit = 1.8 * nNCelsius + 32;
cout << "\x1B[32;1mТемпература по Фаренгейту:\x1B[0m ";
cout << "\x1B[33;1m";
cout << nFahrenheit;
cout << "\x1B[0m";
return 0;
}
Во время работы полученного бинарика обратил внимание, что при вводе некорректного значения переменной nNCelsius, например, два, данная переменная обнуляется и выводится результат: 32.
Каким образом можно реализовать возможность вывода сообщения "Ошибка!", при вводе некорректного значения?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
10% — это 0,1.
© Bizdelnick
© Bizdelnick
-
- Модератор
- Сообщения: 21115
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
https://stackoverflow.com/questions/1344516...r-numeric-input
Don't use token extraction (>>) for primary parsing. Once the extraction fails, your primary input is left in an unspecified state, which is terrible.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
Bizdelnick, это более чем спорное мнение.
ArkanJR, нпример, так:
ArkanJR, нпример, так:
Код: Выделить всё
#include <iostream>
int main()
{
double n;
std::cin >> n;
if (std::cin.fail()) {
std::cout << "Oops!" << std::endl;
std::cin.clear();
std::cin.sync();
}
return 0;
}
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
ArkanJR
лично я согласен с вышеприведённой цитатой
я бы написал свою функцию, которая принимает байты, и переводит их в число. Это несложно, и в процессе написания вы узнаете много нового.
NickLion
не делайте из программиста пхпшника. Почему сразу не послать его учить пхп?
лично я согласен с вышеприведённой цитатой
Bizdelnick писал(а): ↑31.05.2014 14:33Don't use token extraction (>>) for primary parsing. Once the extraction fails, your primary input is left in an unspecified state, which is terrible.
я бы написал свою функцию, которая принимает байты, и переводит их в число. Это несложно, и в процессе написания вы узнаете много нового.
NickLion
не делайте из программиста пхпшника. Почему сразу не послать его учить пхп?
-
- Модератор
- Сообщения: 21115
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
За что купил - за то продал, в C++ не силён.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
Для обучения — норм, а так зачем? Тем более, с конвертацией вещественного числа — та ещё морока будет.
При чём здесь PHP? Это обработка ошибок ввода. Флаг "усё пропало" возвращает .fail(). Проверяем, если что не так — обрабатываем. Можно добавить цикл и заставлять вводить заново, можно зарубить программу. Собственно, что не нравится?
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
можно подумать, что ТС в продакшене градусы переводит своим кодом!
ой, да ладно! Переводим число после точки, и делим на 10 в нужной степени. Профит в том, что после этого ТС поймёт, КАК это работает. И в продакшене уже напишет как надо.
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
Вот-вот. В таком виде точность будет ниже.
В этом плане согласен.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: C++: преобразование градусов Цельсия в градусы Фаренгейта
ЩИТО? Точность будет достаточна для целей ТСа(даже если допустить, что он датчик в продакшене переводит). Всё равно у float точность ограничена, и погрешность дробной части в любом случае будет не хуже после сложения с целой. Ну а если ТС задумает сделать не так как я сказал(делить не на степень 10, а применит преждевременную оптимизацию, и разделит на 10 для каждой цифры), то будет ему наука на будущее. Что школьная математика так просто в код не перекладывается.
я только про этот "план" и говорил. Iostream::fail() ему ничего не даст. Это как зазубривание иностранных слов без изучения соответствующего алфавита и синтаксических правил данного языка. Ну как на рынке ценник "капуст 100 рублей"