Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59

считывание без указателей

12.08.2013, 20:29. Показов 1572. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, понадобилась функция read <type> () или read(), с аргументами без &, через запятую, одного типа. Это вообще возможно? Inline не помогает.
макро с _ не подходит.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2013, 20:29
Ответы с готовыми решениями:

Как обойтись без указателей и указателей на указатель?
Ибо не совсем выходит понять,что на что тут указывает #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdlib.h&gt; using...

Без указателей
Вот задание которое нужно сделать без указателей: Ввести в память расписание поездов следующих из Харькова через Киев. Какие из...

Переписать код без указателей
Ввести в память машины одномерный целочисленный массив,используя динамическое выделение памяти,найти количество максимальных...

23
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
12.08.2013, 20:31
какой read ? о чем вы?
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
12.08.2013, 20:35  [ТС]
в макросе, как аргумент, есть список переменных. пусть будут инты: a , b , c... надо из консоли в них как-то считать инфу.
0
 Аватар для Мимино
191 / 161 / 35
Регистрация: 22.05.2013
Сообщений: 455
Записей в блоге: 1
12.08.2013, 20:58
Цитата Сообщение от Jupiter Посмотреть сообщение
какой read ? о чем вы?
Может этот
C++
1
istream& read (char* s, streamsize n);
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
12.08.2013, 21:07  [ТС]
да просто название
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.08.2013, 21:11
Цитата Сообщение от Андрей Xomach Посмотреть сообщение
да просто название
Может, всё-таки, макрос покажите? Или гадать всем, что у вас там?
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
12.08.2013, 21:15
а передача по ссылке не подойдет:
C++
1
2
3
4
5
6
7
8
9
void read(int &x)
{
    cin>>x;
}
int main()
{
   int k;read(k);
   cout<<k;
}
1
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
12.08.2013, 21:20  [ТС]
да что тут показывать ?
C++
1
2
#define mcin(type, list...)\
    type list;\
хочу 1 макро создать переменные и считать их, но для считывания нужны указатели, а для создания нет. Тут и застрял.
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
12.08.2013, 21:31  [ТС]
zss, именно, то, что надо , осталось только для неопр. числа аргументов сделать

Добавлено через 7 минут
а.. так можно? )
а как? )
только сообразил, что va_arg бессилен похоже
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
12.08.2013, 23:05
Андрей Xomach, то есть, Вы хотите что-то типа такого:

Ввели код:
C++
1
GET_VALUES(a,b,c); // Количество аргументов может быть разным.
Получили на самом деле:
C++
1
2
3
4
5
6
7
int a;
int b;
int c;
 
std::cin >> a;
std::cin >> b;
std::cin >> c;
Я правильно понял ?
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
13.08.2013, 09:56  [ТС]
Убежденный, нет, это вроде есть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template <typename tp>
tp getc(){
    tp x;
    cin >> x;
    return x;
}
 
#define get_l(list)\
    int list = getc <int> ();
#define _ = getc <int> (),
 
//пример
int main(){
    get_l(a _ b _ c);
    printf("%d %d %d", a, b, c);
}
я хочу
C++
1
GET_VALUES(type, a, b, c...);
в
C++
1
2
3
4
5
6
7
type a;
type b;
type c;
 
cin >> a;
cin >> b;
cin >> c;
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
13.08.2013, 10:07
Может я не правильно понял:
C++
1
2
3
4
5
6
7
8
9
10
template<typename T>
void read(T& a,...)
{
    T* p = &a;
    while (*p)
    {
        cin >> *p;
        p++;
    }
}
Хз прокатит ли такое, не знаю, если честно.
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
13.08.2013, 10:11  [ТС]
Wolkodav, если правильно понимаю, ты будешь писать в следующие за а в памяти участки.
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
13.08.2013, 10:14
Андрей Xomach, начиная с 'a' и далее.
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
13.08.2013, 10:20  [ТС]
ну так при создании они не в соседние участки памяти помещаются, если вы об этом.
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
13.08.2013, 10:22
Андрей Xomach, если вы их передаёте в функцию, то они находятся в стеке, друг за другом.
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
13.08.2013, 10:27  [ТС]
или все же в соседние. надо разобраться

Добавлено через 10 секунд
Wolkodav, их копии

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
int main(){
    int a, b, c, d;
    int* sa = &a;
    cin >> *sa;
    for (int i = 1; i < 4; i++){
        sa++;
        cin >> *sa;
    }
    cout << a << b << c << d;
}
при вводе 1 2 3 4
на выходе 1432
это значит, что в памяти они будут помещаться всегда в таком порядке, или частный случай?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
13.08.2013, 10:31
Цитата Сообщение от Андрей Xomach Посмотреть сообщение
то значит, что в памяти они будут помещаться всегда в таком порядке, или частный случай?
Это UB.
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
13.08.2013, 10:33
Андрей Xomach, какие такие копии? Я туда ссылку шурую. Никакой копии там нету) Туда ссылка суётся)
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
13.08.2013, 10:43  [ТС]
не понял, тогда так получается вызов:
C++
1
read(a, &b, &c, &d);
???
сейчас проверю

Добавлено через 5 минут
кажется работает, только надо их не нулями инициализировать, можно без инициализации сделать?

Добавлено через 2 минуты
нет, чушь, тоже, что и с
предыдущим моим кодом происходит. Вы берете указатель не на первый элемент стека КОПИЙ, а на "а". И пишете в следующие участки памяти, то же, что и в сообщении (18) делаете.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.08.2013, 10:43
Помогаю со студенческими работами здесь

Динамическая матрица без массива указателей
Данное извращенство повергло меня в ступор. По заданию необходимо представить матрицу только через указатель. То есть если в программе я...

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

как записать в массив без указателей
Записать в массив строк 1 строку { ifstream in(&quot;out.txt&quot;); if(!in) { cout&lt;&lt;&quot;Не могу открыть файл&quot;; ...

Переписать программу без использования указателей
Всем привет. Есть программа с указателями , как сделать её без указателей? #include&lt;stdio.h&gt; ...

Привсоение масиву указателей объекты без имени
Здравствуйте. Читал книгу там был пример, в нем не могу понять что присваивается массиву указателей ведь TwoDShape и Triangle это классы, а...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru