Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> скопировать cписок define в массив 
:(
    Опции темы
unnreal
Дата 29.8.2010, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 29.8.2010

Репутация: нет
Всего: нет



Есть:

#define IP0 15.11.12.11
#define IP1 27.28.28.22
.....
#define IPN n.n.n.n

#define IPCOUNT N

N может быть любым. 

Необходимо считать их в массив. 

Самый тупой вариант что приходит в голову:

set<IPAddress> ip;

#ifdef IP0 ip.insert(IPAddress(IP0));
#ifdef IP1 ip.insert(IPAddress(IP0));
....

Но понятное дело это очень уныло.

Еще пробовал использовать:

#define concat(a, b) a##b

for (int i=0;i<IPCOUNT;i++)
ip.insert(IPAddress(concat(IP,i)));

Но лезет ошика типа IPi не определено. как можно передать туда значения? 
Либо может как-то о другому решается моя задача?
PM MAIL   Вверх
ValeryLaptev
Дата 29.8.2010, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Препод



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 19.8.2010
Где: Астрахань

Репутация: нет
Всего: 1



Почему ip определяются в программе? Почему не засунуть их в текстовый файл? И оттуда читать. 

PM MAIL   Вверх
Cheloveck
Дата 29.8.2010, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 3
Всего: 32



unnreal, то, что ты хочешь - невозможно. Мы имеем два языка: C++ и CPP. Он работают в разное время, компилируются по отдельности и переменные C++ не будут работать в CPP. Используй шаблоны, статические константы и, как уже сказали, файлы.

Добавлено через 7 минут и 42 секунды
Код

#include <iostream>
#include <vector>
#include <string>
#include <fstream>


int main()
{
    std::vector<std::string> vec;
    std::string ip_str;
    std::ifstream ipstream("ip.list");
    if(!ipstream.is_open())
    {
        std::cerr << "error opening the file.\n";
        return 1;
    }
    
    while(std::getline(ipstream, ip_str))
    {
        vec.push_back(ip_str);
    }
    
    ipstream.close();
    
    for(std::vector<std::string>::const_iterator it = vec.begin();
        it != vec.end(); ++it)
    {
        std::cout << *it << std::endl;
    }
    
    return 0;
}


а в файле так
Код

15.11.12.11
27.28.28.22



--------------------
user posted image
PM Jabber   Вверх
Artemon
Дата 29.8.2010, 16:48 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 1
Всего: 20



Цитата

Мы имеем два языка: C++ и CPP


Это как ?


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
Cheloveck
Дата 29.8.2010, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 3
Всего: 32



C++ и C PreProcessor

Это сообщение отредактировал(а) Cheloveck - 29.8.2010, 17:05


--------------------
user posted image
PM Jabber   Вверх
EvilsInterrupt
Дата 29.8.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



>>>C++ и C PreProcessor
хренасе, вы их называете препроцессор языком? ;)
PM MAIL WWW ICQ Jabber   Вверх
bsa
Дата 29.8.2010, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(EvilsInterrupt @  29.8.2010,  20:03 Найти цитируемый пост)
хренасе, вы их называете препроцессор языком?

XML и HTML тоже языки. И ничего, никто не возмущается.
PM   Вверх
EvilsInterrupt
Дата 29.8.2010, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9



да. но  препроцессор называть языком, мне лично как-то стеснительно! smile
PM MAIL WWW ICQ Jabber   Вверх
Cheloveck
Дата 29.8.2010, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 3
Всего: 32



Цитата(EvilsInterrupt @  29.8.2010,  19:46 Найти цитируемый пост)
препроцессор называть языком

Препроцессор - не язык, а метакомпилятор, если можно так выразиться, у которого есть свой язык.


Это сообщение отредактировал(а) Cheloveck - 29.8.2010, 20:01


--------------------
user posted image
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.