21

Re: Як конвертувати С++ в C???

wander написав:

В 2к20 хтось все ще використовує system pause??
Мда..

Теоретично, в 2тисячі20ому році, як його уявляли на світанку Увиндоус, треба все робити через візуальні об'єкти, а про стандартний ввід/вивід забути. Тому консольне віконце миттю закривається після виконання програми, щоб ви не бачили цього анахронічного сорому. Ну але покажіть мені мінімальну сішну програму з графічним інтерфейсом — там навіть хеловорлд доволі монструозно виглядає. Тому доводиться так.

22

Re: Як конвертувати С++ в C???

P.Y. написав:
wander написав:

В 2к20 хтось все ще використовує system pause??
Мда..

Теоретично, в 2тисячі20ому році, як його уявляли на світанку Увиндоус, треба все робити через візуальні об'єкти, а про стандартний ввід/вивід забути. Тому консольне віконце миттю закривається після виконання програми, щоб ви не бачили цього анахронічного сорому. Ну але покажіть мені мінімальну сішну програму з графічним інтерфейсом — там навіть хеловорлд доволі монструозно виглядає. Тому доводиться так.

Шо? До чого тут графіка?

Подякували: leofun011

23

Re: Як конвертувати С++ в C???

ReAl написав:
P.Y. написав:
int main()

замінити на

int main(void)

Новітнє збочення. В сішнику досіплюсплюсних часів і слова такого — воїд — не було. Це вже потім, відносно недавно, стандартизатори Сі набралися дурниць у Страуструпа.

«відносно недавно» — це десь всередині 1980-тих. Бо в ANSI C (C89, K&R#2) void вже був.

Навіть коли й так, надмірна багатослівність, якої неможливо уникнути — це по-паскалівськи, по-сіплюсплюсному, по-джавівськи, але не по-сішному. Лаконічність, можливість замовчування там, де багатослівні декларації засмічують код — ось те, що робить Сі хорошою мовою. Звісно, якщо ми не хочемо написати щось, що буде валідним як у сішнику, так і в плюсах (чи, навпаки, завідомо невалідним у плюсах через якісь специфічні для Сі декларації) — тоді справді варто робити декларації максимально повними. Але все одно писати в Сі те, без чого можна обійтись, було б так само стилістично неправильно, як використовувати printf у плюсах. (На правах особистої думки).

24 Востаннє редагувалося wander (12.09.2020 00:51:05)

Re: Як конвертувати С++ в C???

ReAl написав:
P.Y. написав:
int main()

замінити на

int main(void)

Новітнє збочення. В сішнику досіплюсплюсних часів і слова такого — воїд — не було. Це вже потім, відносно недавно, стандартизатори Сі набралися дурниць у Страуструпа.

«відносно недавно» — це десь всередині 1980-тих. Бо в ANSI C (C89, K&R#2) void вже був.

В 1978 вже був void.
K&R The C Programming Language, Second edition
https://i.gyazo.com/38324acb34f2710f496e0b8e999d42ab.png

P.Y. написав:

було б так само стилістично неправильно, як використовувати printf у плюсах

Божечки, а я от в С++ використовую printf. Тфю-тфю-тфю.
:D

Подякували: leofun011

25

Re: Як конвертувати С++ в C???

ReAl написав:

І на всі цих чотирьох джерелах вчать виводити цілі числа у рядок якось так:

1220-2440434103-54-543654-4343-300121345-45-44
Пробіл куди дівся?

Не догледів, могли б і виправити..
Наприклад так:

printf("%d ",a[i]);

26

Re: Як конвертувати С++ в C???

wander написав:
P.Y. написав:
wander написав:

В 2к20 хтось все ще використовує system pause??
Мда..

Теоретично, в 2тисячі20ому році, як його уявляли на світанку Увиндоус, треба все робити через візуальні об'єкти, а про стандартний ввід/вивід забути. Тому консольне віконце миттю закривається після виконання програми, щоб ви не бачили цього анахронічного сорому. Ну але покажіть мені мінімальну сішну програму з графічним інтерфейсом — там навіть хеловорлд доволі монструозно виглядає. Тому доводиться так.

Шо? До чого тут графіка?

Ви навіть не зрозуміли до чого я це сказав.
В принципі нічого нового.

27

Re: Як конвертувати С++ в C???

wander написав:
P.Y. написав:
wander написав:

В 2к20 хтось все ще використовує system pause??
Мда..

Теоретично, в 2тисячі20ому році, як його уявляли на світанку Увиндоус, треба все робити через візуальні об'єкти, а про стандартний ввід/вивід забути. Тому консольне віконце миттю закривається після виконання програми, щоб ви не бачили цього анахронічного сорому. Ну але покажіть мені мінімальну сішну програму з графічним інтерфейсом — там навіть хеловорлд доволі монструозно виглядає. Тому доводиться так.

Шо? До чого тут графіка?

Добре, яким буде цивілізований спосіб завершення навчальної консольної програми, написаної в типовому середовищі розробки з властивим йому віндоус-специфічним косяком? Звісно, якби користувач не використовував запуск через IDE, а робив компіляцію й запуск руками в командному рядку, то оця пауза, чи порожній scanf, чи ще якийсь getch були б зайвими. Проте, йому доводиться мати справу з середовищем розробки, орієнтованим, у першу чергу, на створення програм з граф. інтерфейсом, консольники в якому — лише другорядний продукт, тому дбати про зручність їх запуску з середовища розробки ніхто не буде.

Подякували: Droid 771

28

Re: Як конвертувати С++ в C???

P.Y. написав:

Добре, яким буде цивілізований спосіб завершення навчальної консольної програми, написаної в типовому середовищі розробки з властивим йому віндоус-специфічним косяком?

return 0 - який компілятор і за вас вставить.

P.Y. написав:

Звісно, якби користувач не використовував запуск через IDE, а робив компіляцію й запуск руками в командному рядку, то оця пауза, чи порожній scanf, чи ще якийсь getch були б зайвими.

Добре, що робить порожній scanf, чи getch? Без гугління )

P.Y. написав:

мати справу з середовищем розробки, орієнтованим, у першу чергу, на створення програм з граф. інтерфейсом

*FACEPALM*

Прихований текст

Якби ви вміли користуватися середовищем, то знали б, як можна в середовищі "на вінді" зробити так, щоб ваша бідна консольна програма не закривалася, але так це ж треба навчитися працювати з IDE.

Подякували: leofun011

29

Re: Як конвертувати С++ в C???

wander написав:

Божечки, а я от в С++ використовую printf. Тфю-тфю-тфю.
:D

Тільки нікому про це не кажіть, бо зараз прийдуть спеціалісти й пояснять вам, що ви пишете на плюсах сішний код. Для кого Страуструп старався, побітові зсуви перевизначав? А ви якийсь косячний прінтф берете — там же не ту букву напишеш, то вся пам'ять попливе на стандартний вивід...

30

Re: Як конвертувати С++ в C???

P.Y. написав:

бо зараз прийдуть спеціалісти й пояснять вам, що ви пишете на плюсах сішний код

Чекатиму *SCRATCH*
Ой, то ви не спеціаліст? Слава богу.

P.Y. написав:

А ви якийсь косячний прінтф берете — там же не ту букву напишеш, то вся пам'ять попливе на стандартний вивід...

:D  :D  :D
no comments.

31

Re: Як конвертувати С++ в C???

wander написав:

Добре, що робить порожній scanf, чи getch? Без гугління )

без гугління очікує введення символу

А що робить початківець який вперше написав Hello World та після запуску без паузи навіть не бачить та не розуміє що то було.. *SCRATCH*

32 Востаннє редагувалося wander (12.09.2020 01:16:05)

Re: Як конвертувати С++ в C???

Droid 77 написав:

А що робить початківець який вперше написав Hello World та після запуску без паузи навіть не бачить та не розуміє що то було..

Чесно? Адекватний початківець вперше пише програму під час прочитання книжки для новачків по С/С++.
Якщо книжка нормальна там все пояснять.

Droid 77 написав:

без гугління очікує введення символу

І чого ви цим хочете добитися?

33

Re: Як конвертувати С++ в C???

Так а нащо спитали?

34

Re: Як конвертувати С++ в C???

Droid 77 написав:

Так а нащо спитали?

Ну, це ж не я в програму system pause вставляю.

Подякували: leofun011

35 Востаннє редагувалося Droid 77 (12.09.2020 01:24:23)

Re: Як конвертувати С++ в C???

Особиста думка. Коли людина вже зрозуміє що до чого, то вона і сама ту паузу викине з коду як пойме що вона вже не потрібна

36

Re: Як конвертувати С++ в C???

Добре, що робить порожній scanf, чи getch? Без гугління )

Гадаю, очікує, що користувач натисне enter (чи якусь іншу клавішу). Що є таким же протезом, як і виклик віндової паузи — хіба що пауза платформозалежна, але й проблема швидкого закриття консольного віконця теж специфічна для віндоус. Вам хочеться запустити свою програму безпосередньо з середовища розробки і прочитати, що там вона вивела, а не побачити, як блимнуло консольне віконце. Якщо у 2тисячі20му році щось змінилось у цьому плані, то 1) я дуже здивуюсь, 2) так що там змінилось?

кби ви вміли користуватися середовищем, то знали б, як можна в середовищі "на вінді" зробити так, щоб ваша бідна консольна програма не закривалася, але так це ж треба навчитися працювати з IDE.

Тоді разом з нубським хеловорлдом доведеться тягати інструкцію для користувача, як налаштувати IDE. І все одно знайдеться середовище, де ця інструкція виявиться непридатною (наприклад, інша версія чи взагалі інше IDE, де потрібну опцію зарили десь в іншому місці, або й зовсім не включили). Паузу ж, у разі чого, можна закоментувати, якщо вона стає непотрібною — це простіше, ніж розбиратися зі специфікою конкретного середовища.

Оскільки я не справжній програміст, то пишу свої програмки в текстовому редакторі (не IDE), запуск і компіляція яких, залежно від мови програмування та конкретної задачі, роблю або руками в консолі, або використовую плагін для запуску з редактора — в другому випадку, проблема «віконце блимнуло» лишається актуальною, тому доводиться використовувати подібні протези. Копатися в громіздкому IDE, більшість функціоналу якого мені непотрібна — сенс? Про те, що сішні програми я здебільшого оформлюю як батники, що компілюють себе в gcc, я краще не розповідатиму — це просто специфіка мого любительського налагодженого робочого процесу, що дозволяє виконувати прості задачі мінімумом дій. Погодьтесь, було б дивно вимагати, щоб усі дотримувались саме мого способу запуску програм, а не якогось іншого — проте, це ж стосується й IDE, що є так само необов'язковим доповненням поверх володіння мовою програмування (яку, власне, студенти і вивчають).

37

Re: Як конвертувати С++ в C???

Адекватний початківець вперше пише програму під час прочитання книжки для новачків по С/С++.
Якщо книжка нормальна там все пояснять.

«Нормальна» — це заточена під конкретне середовище розробки? По-моєму, частіше в книжках для початківців роблять акцент не на середовищі розробки, а на самій мові. Середовище може змінюватись, а бульбашкове сортування яким було в часи перших сішних компіляторів, таким і лишилося. Узявши в руки якийсь із загальновідомих підручників з C/C++, з великою ймовірністю, ви не знайдете нічого ні про середовище розробки, ні про запуск компілятора (або ж ця інформація виявиться анахронічною) — тільки програми, програми, програми... По великому рахунку, інструкція до середовища розробки — окрема сутність, яку треба шукати десь окремо.

Подякували: leofun011

38

Re: Як конвертувати С++ в C???

wander написав:
P.Y. написав:

бо зараз прийдуть спеціалісти й пояснять вам, що ви пишете на плюсах сішний код

Чекатиму *SCRATCH*
Ой, то ви не спеціаліст? Слава богу.

P.Y. написав:

А ви якийсь косячний прінтф берете — там же не ту букву напишеш, то вся пам'ять попливе на стандартний вивід...

:D  :D  :D
no comments.

Ну от справді, тут люблять шпиняти новачків, що вони пишуть «сішний код на сіплюсплюс». Ви ж, наскільки я розумію, розбираєтесь у C/C++ на професійному рівні — тож поясніть, чому таке відхилення для вас прийнятне, а для нуба — ні.

Зрештою, чому б усім не писати сумісний код, однаково валідний і в C, і в С++, використовуючи С++-специфічні елементи виключно там, де це справді необхідно?

39

Re: Як конвертувати С++ в C???

Droid 77 написав:

Ще треба додати:
stdlib.h, бо не спрацює srand, rand і скоріше за все system

Формально, треба (і в оригіналі це теж треба було б), але, фактично, stdlib.h підтягується разом із stdio.h чи іншими інклудами, які його використовують (хоч, безумовно, покладатися на це — поганий тон).

40

Re: Як конвертувати С++ в C???

От один Droid 77 нормальний, допомiг, дякую!

А решта особливо koala - лиш понтуватись можете, а допомогти новачку нема кому! ]:->