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

Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.96
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
18.06.2010, 00:55     Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран. #1
Помогите решить задачу, запутался я с этими созданиями ф-ций, вот задача:
Написать программу, которая реализует функцию с неограниченным количеством параметров,
организовывающую форматированный вывод на экран. Иначе говоря, требуется попробовать
создать свою версию функции printf.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<iostream>
#include<stdarg.h>
using namespace std;
char pechat(int count, char* typeof,...)
{
    va_list arg_ptr;
    va_start(arg_ptr,count);
    while(count--)
    {
        if(typeof=="s")
            cout<<va_arg(arg_ptr,char)<<endl;
        else
        {
            if(typeof=="d")
            cout<<va_arg(arg_ptr,int)<<endl;
        }
    }
    va_end(arg_ptr);
    return 1;
}
void main()
{
    char a[250];
    int len=0;
    gets(a);
    len=strlen(a);
    pechat(len,"s",a);
    cout<<endl;
    pechat(len,"d",a);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2010, 00:55     Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран.
Посмотрите здесь:

C++ подскажите плз функцию с неограниченным количеством параметров
C++ Написать программу на языке С + + которая реализует конструктор который инициализирует исходные данные класса
Написать функцию, которая возвращает максимальное из двух чисел, которые переданы в функцию в качестве параметров C++
C++ написать программу которая реализует возможность управления запиписом, вывод, и удалением элементов в противнях
Написать программу которая реализует алгоритмы массивов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
18.06.2010, 04:15     Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран. #2
у меня есть одна старенькая прога, наверно придется чуть-чуть доработать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//ключи: строки (%s), символы (%c), десятичные (%d).
#include<iostream>
#include<cstdarg>
#include<string>
 
using std::cout;
using std::cin;
 
void print(char *s ...)
{
    va_list L;
    va_start(L,s);
    while(*s!='\0')
    {
           if (*s!='%') cout << *s;
           if (*s=='%')
           {
              s++;
              switch (*s)
              {
                     case 'd': cout << va_arg(L,int); break;
                     case 'c': cout << (char)va_arg(L,int); break;
                     case 's': cout << va_arg(L,char*); break;
                     case ' ': cout << '% '; break;
                     default: cout << "{key %" << *s << " invalid}";break;
              }
           }
           s++;
    }
    va_end(L);
}
 
int main()
{
    print("I want to print this %d argument,\n",4);
    
    print("and this string %s, I what to...","<aloha>");
    print(" and this %c-littel character.\n",'%');
    
    print("How about %% error?\n");
    print("And about % error?\n");
    print("Alltogether %s string, %c char, %d int.\n","Buny_rabit",'K',13);
    //и с переменными
    char *cptr="Intel outside";
    int i=24;
    char c='T';
    print("Our strings: %s, %c -- %d\nErroer! => %f \n",cptr,c,i);
    print("testing %d\n");
    print("No errors %c\n",'@');
 
    print(">>%d\n",c);
    print("No arguments\n",c);
    print("One argument %d",35,c);
}
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
18.06.2010, 14:00  [ТС]     Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран. #3
благодарю, разобрался)
ruslan_net
4 / 4 / 1
Регистрация: 18.09.2012
Сообщений: 38
05.12.2012, 04:39     Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран. #4
У меня не хочет работать, поскажите почему в этом коде выдает такие ошибки
Миниатюры
Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран.  
ruslan_net
4 / 4 / 1
Регистрация: 18.09.2012
Сообщений: 38
05.12.2012, 04:43     Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран. #5
Есть пример и тут тоже подобные проблемы. Не могу разобраться т.к. неполучаеться запистить примеры. А очень надо.


C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include "stdafx.h"
using namespace std;
//Прототип функции.
long summa (int,...); 
void main()
{
    cout<<"\n summa(2,4,6)=" << summa (2,4,6);
 
    cout<<"\n summa(6,1,2,3,4,5,6)="<< summa (6,1,2,3,4,5,6);
 
}
//Передаем количество параметров.
long summa (int k,...) 
{
     //pk содержит адрес расположения 
     //начала списка параметров.
     //это связано с тем, что параметры
     //располагаются по порядку
     //в оперативной памяти
    int *pk=&k; 
 
    //подсчет суммы
    //к - количество параметров
    long sm=0;
    for (;k;k--)
          sm+=*(++pk);
 
    return sm;
}
Миниатюры
Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран.  
Yandex
Объявления
05.12.2012, 04:43     Написать программу, которая реализует функцию с неограниченным количеством параметров, организовывающую форматированный вывод на экран.
Ответ Создать тему
Опции темы

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