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

Рапределение идндексов по элементам, независимо от значения переменной - C++

Восстановить пароль Регистрация
 
Inguldima
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 23
01.05.2012, 19:36     Рапределение идндексов по элементам, независимо от значения переменной #1
вот часть кода программы:
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
void List::read()
{
    ifstream f1("rezult.txt");
    char s[255];
 char mas_s[50][255];
 char*f;
 int i,kol;
 kol = 1;
 
 while(!f1.eof())
 {
     f1.getline(s,255);
     f = strtok(s,";");
 while(f)
 {
  strcpy(mas_s[kol],f);
 kol++;
  f = strtok(0,";");
 }
 }
 kol=8;
 for(i=1;i<kol;i++)
 {
     if(i==1)List::add(atoi(mas_s[i]),mas_s[i+1],atoi(mas_s[i+2]),atoi(mas_s[i+3]));
     else if(i==2)List::add(atoi(mas_s[i+3]),mas_s[i+4],atoi(mas_s[i+5]),atoi(mas_s[i+6]));
 } 
 f1.close();
}
У меня всего 4 добаляемых элемента. Как сделать чтоб при любом значении kol оно рапределяло правильно идндексы по элементам? Я вот сделал для 2-записей,
C++
1
2
3
4
5
6
for(i=1;i<kol;i++) {
  if(i==1)
    List::add(atoi(mas_s[i]),mas_s[i+1],atoi(mas_s[i+2]),atoi(mas_s[i+3]));
  else if(i==2)
    List::add(atoi(mas_s[i+3]),mas_s[i+4],atoi(mas_s[i+5]),atoi(mas_s[i+6]));
 }
но нужна универсальная помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2012, 19:36     Рапределение идндексов по элементам, независимо от значения переменной
Посмотрите здесь:

Объявите неинициализированный трехмерный массив и присвойте значения элементам с помощью кода C++
Напишите программу, присваивающую значения элементов списка указателей на символьные строки в стиле С (тип char* ) элементам вектора строк C++
C++ Преобразование значения переменной (long) через функцию в значения структуры
Присвоить значения переменной Х C++
Проверьте что работает не правильно (задать значения вещественным элементам матриц) C++
Задать значения вещественным элементам массивов и вычислить C++
C++ Задать значения целочисленным элементам массивов и вычислить
Задать значения скрытым элементам класса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cyberdiem
 Аватар для cyberdiem
74 / 25 / 1
Регистрация: 15.02.2012
Сообщений: 97
01.05.2012, 20:26     Рапределение идндексов по элементам, независимо от значения переменной #2
используй мультиусловие switch:

C++
1
2
3
4
5
6
7
8
switch(i){
case 1: List::add(atoi(mas_s[i]),mas_s[i+1],atoi(mas_s[i+2]),atoi(mas_s[i+3]));
case 2: List::add(atoi(mas_s[i+3]),mas_s[i+4],atoi(mas_s[i+5]),atoi(mas_s[i+6]));
case 3:
case 4:
/*и так далее*/
default: /*тут пиши любое рандомное действие, если уже перебрал все варианты, либо пиши действие, которое выполнится, если i не оказалось равным ни одному из case*/
}
Добавлено через 5 минут
либо можешь мучиться со вложенными условиями:

C++
1
2
3
4
if(i==1)List::add(atoi(mas_s[i]),mas_s[i+1],atoi(mas_s[i+2]),atoi(mas_s[i+3]));
     else if(i==2)List::add(atoi(mas_s[i+3]),mas_s[i+4],atoi(mas_s[i+5]),atoi(mas_s[i+6]));
                else if(i==3)List::add...
                          else if(i==4)List::add...
ну или просто кучу условий, у них же не обязательно else:
C++
1
2
3
if(i==1)List::add(atoi(mas_s[i]),mas_s[i+1],atoi(mas_s[i+2]),atoi(mas_s[i+3]));
if(i==2)List::add(atoi(mas_s[i+3]),mas_s[i+4],atoi(mas_s[i+5]),atoi(mas_s[i+6]));
if(i==3)List::add....
Но лучше switch используй, он как раз для таких случаев, ибо набор операторов сравнения или вложенные сравнения дольше работают (если искомое условие "глубже"), чем switch.
Inguldima
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 23
01.05.2012, 22:08  [ТС]     Рапределение идндексов по элементам, независимо от значения переменной #3
Спасибо буду что-то пробывать
Yandex
Объявления
01.05.2012, 22:08     Рапределение идндексов по элементам, независимо от значения переменной
Ответ Создать тему
Опции темы

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