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

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

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

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

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

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

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

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

23
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
12.08.2013, 20:31 2
какой read ? о чем вы?
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
12.08.2013, 20:35  [ТС] 3
в макросе, как аргумент, есть список переменных. пусть будут инты: a , b , c... надо из консоли в них как-то считать инфу.
0
190 / 160 / 35
Регистрация: 22.05.2013
Сообщений: 455
Записей в блоге: 1
12.08.2013, 20:58 4
Цитата Сообщение от Jupiter Посмотреть сообщение
какой read ? о чем вы?
Может этот
C++
1
istream& read (char* s, streamsize n);
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
12.08.2013, 21:07  [ТС] 5
да просто название
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
12.08.2013, 21:11 6
Цитата Сообщение от Андрей Xomach Посмотреть сообщение
да просто название
Может, всё-таки, макрос покажите? Или гадать всем, что у вас там?
0
Модератор
Эксперт С++
13531 / 10776 / 6421
Регистрация: 18.12.2011
Сообщений: 28,772
12.08.2013, 21:15 7
а передача по ссылке не подойдет:
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  [ТС] 8
да что тут показывать ?
C++
1
2
#define mcin(type, list...)\
    type list;\
хочу 1 макро создать переменные и считать их, но для считывания нужны указатели, а для создания нет. Тут и застрял.
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
12.08.2013, 21:31  [ТС] 9
zss, именно, то, что надо , осталось только для неопр. числа аргументов сделать

Добавлено через 7 минут
а.. так можно? )
а как? )
только сообразил, что va_arg бессилен похоже
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
12.08.2013, 23:05 10
Андрей 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  [ТС] 11
Убежденный, нет, это вроде есть:
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
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
13.08.2013, 10:07 12
Может я не правильно понял:
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  [ТС] 13
Wolkodav, если правильно понимаю, ты будешь писать в следующие за а в памяти участки.
0
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
13.08.2013, 10:14 14
Андрей Xomach, начиная с 'a' и далее.
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
13.08.2013, 10:20  [ТС] 15
ну так при создании они не в соседние участки памяти помещаются, если вы об этом.
0
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
13.08.2013, 10:22 16
Андрей Xomach, если вы их передаёте в функцию, то они находятся в стеке, друг за другом.
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
13.08.2013, 10:27  [ТС] 17
или все же в соседние. надо разобраться

Добавлено через 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
Неэпический
17871 / 10636 / 2054
Регистрация: 27.09.2012
Сообщений: 26,738
Записей в блоге: 1
13.08.2013, 10:31 18
Цитата Сообщение от Андрей Xomach Посмотреть сообщение
то значит, что в памяти они будут помещаться всегда в таком порядке, или частный случай?
Это UB.
0
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
13.08.2013, 10:33 19
Андрей Xomach, какие такие копии? Я туда ссылку шурую. Никакой копии там нету) Туда ссылка суётся)
0
9 / 9 / 0
Регистрация: 22.01.2012
Сообщений: 59
13.08.2013, 10:43  [ТС] 20
не понял, тогда так получается вызов:
C++
1
read(a, &b, &c, &d);
???
сейчас проверю

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

Добавлено через 2 минуты
нет, чушь, тоже, что и с
предыдущим моим кодом происходит. Вы берете указатель не на первый элемент стека КОПИЙ, а на "а". И пишете в следующие участки памяти, то же, что и в сообщении (18) делаете.
0
13.08.2013, 10:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2013, 10:43
Помогаю со студенческими работами здесь

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

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

Переписать программу без использования указателей
Всем привет. Есть программа с указателями , как сделать её без указателей? ...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru