Кращий спосіб зчитувати кілька int в C, ніж scanf


17

Я намагаюся прочитати 4 ints в C в гольф-виклику, і мене турбує довжина коду, який мені потрібно вирішити:

scanf("%d%d%d%d",&w,&x,&y,&z)

це 29 символів, що є величезним, враховуючи, що мій загальний розмір коду - 101 символи. Я можу позбутися першого int, оскільки він мені зовсім не потрібен, тому я отримую цей код:

scanf("%*d%d%d%d",&x,&y,&z)

що становить 27 знаків, але він все ще тривалий.

Отже, моє запитання полягає в тому, чи є інший спосіб (хитрощі, функції, K&R речі) читати вставки, які я не знаю, що могло б допомогти мені зменшити цей біт коду?

Дуже дякую.

EDIT: деякі користувачі повідомили, що моє запитання схоже на Поради щодо гольфу в С

Хоча ця тема містить велику кількість корисної інформації для скорочення кодів С, вона не стосується мого фактичного випадку використання, оскільки не забезпечує кращого способу зчитування входів.

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

Якщо немає кращого способу, моє питання все-таки може бути корисним найближчим часом, якщо хтось знайде краще рішення.

EDIT2: Я шукаю повну програму (тому жоден фокус функцій) та всі бібліотеки. Це повинно бути C, а не C ++. Наразі вся моя програма виглядає так:

main(w,x,y,z){scanf("%*d%d%d%d",&x,&y,&z)}

будь-які трюки вітаються, доки він скоротить код (це код гольфу :)) і до тих пір, поки це не c ++


4
Зазвичай ви можете подати функцію замість повних програм, яка дозволяє взяти ці 4 входи як аргументи.
Денкер

Я бачу, дякую за ваш коментар, але в моєму випадку це повинна бути повноцінна програма.
BusyBeingDelicious

12
1) @BusyBeingDelicious, ласкаво просимо до PPCG! :) 2) Для близьких виборців це не загальне програмне питання . Це питання щодо підказок, в якому просять допомогти код для гольфу, який абсолютно на тему .
Мартін Ендер

1
Можливий дублікат Поради щодо гольфу в C
Mego

3
Шановні близькі виборці: Це дуже чітко на тему. Чому ви все ще намагаєтесь закрити це?
DJMcMayhem

Відповіді:


2

Ви можете написати функцію замість програми в якості подання. В C ви можете опустити intфункцію підписів:

f(w,x,y,z){}

9
У коментарі ОП зазначила, що в цьому випадку вона повинна бути повноцінною програмою.
Олексій А.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.