Форум программистов, компьютерный форум, киберфорум
Наши страницы

Шаблоны, массивы.. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Конструирование программ из нескольких файлов http://www.cyberforum.ru/cpp-beginners/thread113990.html
ребят мне по зарез надо сделать эту лабу помогите плз условие на картинке
C++ Функции пользователя мне нужно сделать лабу а времени в обрез помогите плз вот условие http://www.cyberforum.ru/cpp-beginners/thread113986.html
C++ Абстрактный тип данных - Список
Здравствуйте! Недавно начал изучать язык СИ, возникли проблемы, в универе задали: Реализовать АТД Список (List) для любого типа данных и его операторы Insert, Locate, Retrieve, Delete, Next,...
создание функции C++
плз помогите сделать лабу ато сам не успеваю вот условие Функция выделяет из заданной строки подстроку заданной длины, начиная с заданной позиции. нужно на одычной С
C++ Как подключить dll к проекту? http://www.cyberforum.ru/cpp-beginners/thread113976.html
Ребят помогите пожалуйста, если сможете а то я уже 3 дня долбаюсь чет никак не могу разобраться с этими dll. вот я написал код dll-ки //dllmain.cpp #include "dll.h" #include <windows.h> HWND...
C++ В гостиницу прибыла группа из К туристов В гостиницу прибыла группа из К туристов. Каждый турист должен быть поселен в отдельный номер. Администратор располагает перечнем свободных номеров с указанием их вместимости (одноместный,... подробнее

Показать сообщение отдельно
h_inc
2 / 2 / 0
Регистрация: 18.03.2010
Сообщений: 11
09.04.2010, 16:06  [ТС]
Не решение так как следующий код при компиляции выдаёт ошибку:
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
#include "iostream"
#include "conio.h"
using namespace std;
 
template <class T> void exclude(T*, int, T);
void exclude(char*, int, char);
 
int main()
{
    int mi[] = {0,1,2,3,0,4,5,0,0,6,7,8,0,9,10,0};
    float mf[] = {1.764, 1.1, 555.88, 100.500, 1.764, 11, 91.12};
    char mc[] = "oHello world!o";
 
    exclude(mi, sizeof(mi) / sizeof(mi[0]), 0);
    exclude(mf, sizeof(mf) / sizeof(mf[0]), 1.764);
    exclude(mc, sizeof(mc) / sizeof(mc[0]), 'o');
 
    for(int i00 = 0; i00 < sizeof(mi) / sizeof(mi[0]); i00++)
        cout << mi[i00] << '\t';
 
    cout << "\n\n";
 
    for(int i00 = 0; i00 < sizeof(mf) / sizeof(mf[0]); i00++)
        cout << mf[i00] << '\t';
 
    cout << "\n\n" << mc;
 
    getch();
    return 0;
}
template <class T> void exclude(T*pT, int size, T excl)
{
        int i01 = 0;
        for(int i00 = 0; i00 < size; i00++)
                if(*(pT + i00) != excl)
                        *(pT + i01++) = *(pT + i00);
        for(; i01 < size;)
                *(pT + i01++) = 0;
}
void exclude(char*pc, int size, char excl)
{
    int i01 = 0;
    for(int i00 = 0; i00 < size; i00++)
        if(*(pc + i00) != excl)
            *(pc + i01++) = *(pc + i00);
    *(pc + i01) = '\0';
}
VS 2008 EE:
error C2664: 'void exclude(char *,int,char)' : cannot convert parameter 1 from 'float [7]' to 'char *'
Похоже здесь дело не в шаблонах, а в самом языке конвертирующим вводимое программистом значение всегда в double. Если использовать конструкцию float(x) или переменную как посредник, то всё работает нормально.
На практике последний способ используется в большинстве случаев, поэтому проблема для меня исчерпана. Спасибо.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru