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

Функция с неуказанным числом аргументов

03.01.2016, 12:36. Показов 1877. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Попытался реализовать функцию, которая выводит свои аргументы(все, кроме первого), но когда запускаю, она дополнительно ещё прописывается два раза строки "щ[". Кто нибудь знает, почему это происходит и как это устранить. Спасибо заранее.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int d(int c ...)
{
    va_list ap;
    va_start(ap,c);
    for(;;)
    {
        char *p = va_arg(ap,char*);
        if(*p==0)break;
        cout<<p<<endl;
    }
    va_end(ap); 
    return 0;
}
void main()
{
    d(0,"1231","234","57");
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.01.2016, 12:36
Ответы с готовыми решениями:

Шаблонная функция с переменным числом аргументов
Сабж. Каким образом можно запретить использование шаблонной функции, если тип одного из аргументов не соответствует требуемому? Есть...

Функция с переменным числом аргументов (через шаблоны)
Доброго времени суток! Встал вопрос с реализацией такой функции. template&lt;typename... Args&gt; returntype functionname(const...

Есть функция с кучей аргументов, как её вызвать в другой функции (если половины аргументов у меня нет)?
Я конечно, понимаю, что на такие вопросы отвечают &quot;почитай книжку&quot;. Я читала, честное слово:) Конкретно. Есть функция void jacobi (...

5
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
03.01.2016, 15:32
алексашк, у меня так и не получилось через va_list решил проблему через шаблоны так
1
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 73
04.01.2016, 05:40  [ТС]
спасибо, за вариант с шаблонами, но меня интересовало больше сама реализация с помощью va_list.
В целом от проблемы избавиться удалось только через костыль: в условии перед break добавить ещё: if(*p==0||*p==-23)break;
только тогда, все работает, но причину я так и не выяснил.
0
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
04.01.2016, 10:27
В случае с va_list есть проблема останова. В приведённом фрагменте условием останова служит нулевой указатель, но тогда его и надо самому передавать при вызове функции последним. Или же передавать количество аргументов. Никто за вас эту работу выполнять не станет.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,741
Записей в блоге: 14
04.01.2016, 10:44
Лучший ответ Сообщение было отмечено алексашк как решение

Решение

Загляни сюда
1
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 73
09.01.2016, 20:02  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Загляни сюда
Спасибо за ссылку, наверное, лучший вариант - это первая строка типов "%d%f...", но если типов слишком много, плюс ещё пользовательские типы, то, наверное, действительно проще шаблоном воспользоваться.
Но посмотрев на свой вариант, все таки интересно, почему же всегда именно два элемента в конце и всегда одни и те же? если я оставлю этот костыль, то будет ли код работать в других средах разработки с другими компиляторами, на другой ОС в конце концов.Короче говоря, будет ли ко переносимым?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2016, 20:02
Помогаю со студенческими работами здесь

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

Отсутствуют экземпляры перегруженная функция "pow", соответствующие списку аргументов типы аргументов: (<unknown-type>, double)
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;iostream&gt; int main() { double x, y, z, a, b; setlocale(LC_ALL,&quot;rus&quot;); ...

Функции с переменным числом аргументов
Дело было в дизеле после университета. Хотел написать функцию, в которой заранее не будет известно, сколько будет аргументов, но ничего...

Метод с переменным числом аргументов
И снова здравствуйте! Необходимо реализовать поиск объекта в массиве который соответствует некоторому диапазону параметров. Т.е....

Макрос с переменным числом аргументов
Помню что можно и помню что это выгледит как-то так: #define def( a, ... ) /*...*/ Но непомню как обращатся к этой неопределённой...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru