Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Андрей Xomach
8 / 8 / 0
Регистрация: 22.01.2012
Сообщений: 59
#1

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

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

В общем, понадобилась функция read <type> () или read(), с аргументами без &, через запятую, одного типа. Это вообще возможно? Inline не помогает.
макро с _ не подходит.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wolkodav
601 / 454 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
13.08.2013, 11:04     считывание без указателей #21
Андрей Xomach, была какая-то библиотечка в С++, для передачи неопределённого числа параметров в функцию. Поищите, я название забыл.
1) Вызов просто:
C++
1
read(a,b,c,d)
Я туда ссылку запихнул, а не указатель. Соответственно он пишет, куда ссылается ссылка.
2) Не нулями, писал, надо библиотечку поискать. Название не помню только.
3) Ну так блин, первый 'a' это первый элемент, который передаётся в функцию, и иду дальше. Так уж получается в слудающих ячейках памяти лежат наши переменные.
Андрей Xomach
8 / 8 / 0
Регистрация: 22.01.2012
Сообщений: 59
13.08.2013, 11:13  [ТС]     считывание без указателей #22
1) stdarg, я помню, она непосредственно со стеком копий работает.
Вы помещаете ссылку лишь на первый, а следующие помещаете в чистом виде, в прочем, вы их не используете
Он пишет, куда ссылается ссылка, а затем в соседние с ним элементы. Вот тест:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template<typename T>
void read(T& a,...)
{
    T* p = &a;
    while (*p)
    {
        cin >> *p;
        p++;
    }
}
 
int main(){
    int a = 1, b = 1, c = 1, d = 1;
    int a1 = 1, b1 = 1, c1 = 1, d1 = 1;
    read <int> (a, b1, c1, d1);
    cout << a << b << c << d;
}
во-первых, просит у нас он все 8 ввести и при вводе
1 2 3 4 5 6 7 8
вывод:
1876
Croessmah
Модератор
Эксперт CЭксперт С++
12877 / 7263 / 810
Регистрация: 27.09.2012
Сообщений: 17,943
Записей в блоге: 2
Завершенные тесты: 1
13.08.2013, 11:40     считывание без указателей #23
Для работы с переменным числом параметров используйте
va_list
va_start
va_arg
va_end
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2013, 13:39     считывание без указателей
Еще ссылки по теме:

Привсоение масиву указателей объекты без имени C++
как записать в массив без указателей C++
C++ Считывание из текстового файла. Считывает мусор без остановки
C++ Переписать код без указателей
C++ Переписать программу без использования указателей

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

Или воспользуйтесь поиском по форуму:
Убежденный
Системный программист
Эксперт С++
15099 / 6794 / 1073
Регистрация: 02.05.2013
Сообщений: 11,105
Завершенные тесты: 1
13.08.2013, 13:39     считывание без указателей #24
Цитата Сообщение от Андрей Xomach Посмотреть сообщение
я хочу
C++
1
GET_VALUES(type, a, b, c...);
в
C++
1
2
3
4
5
6
type a;
type b;
type c;
cin >> a;
cin >> b;
cin >> c;
Это можно на препроцессоре сделать.
Правда, придется немного повозиться. Оно точно Вам надо ?
Yandex
Объявления
13.08.2013, 13:39     считывание без указателей
Ответ Создать тему
Опции темы

Текущее время: 10:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru