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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
#1

Как инициализировать глобальную переменную в зависимости от количества строк в файле - C++

20.01.2014, 17:05. Просмотров 476. Ответов 11
Метки нет (Все метки)

Есть переменная типа
C++
1
int glob = 3;
объявлена в не main(), т.е. глобальная.
После неё, тоже не в mаin, объявлены структуры ex:
C++
1
struct buffer[glob ];
далее: есть файл произвольный с n строками.
имеется функция для подсчёта строк
C++
1
2
3
4
5
6
7
int count_string(FILE *file) //возвращает кол-во строк в файле
{
char string[dlina];
int j = 0;
while(fgets(string,dlina,file)!=NULL)j++;
return j;
}
она непосредственно вызывается в main().

Собственно вопрос: как инициализировать глобальную переменную в зависимости от кол-ва строк в файле???
Детский вопрос, но я как-то запутался, помогите плиз (я думаю, что нельзя)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2014, 17:05     Как инициализировать глобальную переменную в зависимости от количества строк в файле
Посмотрите здесь:

Как обьявить глобальную переменную - C++
Как объявить глобальную переменную Есть несколько *CPP* и *.h* файлы. Надо объявить переменную HWND hwnd чтобы она была доступна в...

Как создать глобальную переменную? - C++
Создаю небольшой проект. Несколько функций и собственно тело программы. В теле объявил переменную int rep. Далее мне надо обратиться к ней...

Как сделать одну глобальную переменную - C++
Есть многофайловый проект. К примеру 5 файлов(5 "H" файлов+для них 5 "срр" файлов, пускай в каждом файле будет лежать класс) и есть...

Как объявить глобальную переменную в Dev-C++ 4.9.9.2? - C++
Попробовал написать из справочника по С++ такую программу: #include <iostream> #include <windows.h> using namespace std; void...

Как обьявить глобальную переменную в функции? - C++
Вопрос как объявить переменную в функции чтобы ей можно было пользоваться везде?

Как лучше сделать глобальную переменную? - C++
Интернет совсем пустой в плане глобальных переменных на с++ Задача следующая: 1. Нужно создать много глобальных переменных будет...

Как и где описать глобальную переменную? - C++
Как и где описать глобальную переменную? В главном класее я определяю указутель на CDaoDatabase CDaoDatabase* DBase; DBase = new...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
20.01.2014, 17:12     Как инициализировать глобальную переменную в зависимости от количества строк в файле #2
C++
1
struct buffer[glob ];
имя структуры забыли?

Добавлено через 1 минуту
C++
1
int glob = count_string("c:\\boot.ini");
zss
Модератор
Эксперт С++
6281 / 5884 / 1905
Регистрация: 18.12.2011
Сообщений: 15,093
Завершенные тесты: 1
20.01.2014, 17:13     Как инициализировать глобальную переменную в зависимости от количества строк в файле #3
Цитата Сообщение от танкист34 Посмотреть сообщение
как инициализировать глобальную переменную в зависимости от кол-ва строк в файле?
В нужном месте присвойте ей нужное значение.
Значение глобальной переменной не пропадет до следующего присваивания..
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
20.01.2014, 17:31  [ТС]     Как инициализировать глобальную переменную в зависимости от количества строк в файле #4
Цитата Сообщение от Croessmah Посмотреть сообщение
1
int glob = count_string("c:\\boot.ini");
так не получится и не получается. Причина: массив структур требует const int в качестве кол-ва элементов, а const int переинициализировать заново нельзя.

Добавлено через 1 минуту
Цитата Сообщение от zss Посмотреть сообщение
В нужном месте присвойте ей нужное значение.
Значение глобальной переменной не пропадет до следующего присваивания..
я не зря про массив структур написал, они требуют чтобы кол-во элементов было объявлено или через define, или через const int
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
20.01.2014, 17:35     Как инициализировать глобальную переменную в зависимости от количества строк в файле #5
Цитата Сообщение от танкист34 Посмотреть сообщение
Причина: массив структур требует const int в качестве кол-ва элементов
где в первом посте const?
C++
1
int glob = 3;
zss
Модератор
Эксперт С++
6281 / 5884 / 1905
Регистрация: 18.12.2011
Сообщений: 15,093
Завершенные тесты: 1
20.01.2014, 17:37     Как инициализировать глобальную переменную в зависимости от количества строк в файле #6
C++
1
2
3
4
5
6
int glob;
int main()
{
    glob=count_string("c:\\boot.ini");
   ....
}
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
20.01.2014, 17:42  [ТС]     Как инициализировать глобальную переменную в зависимости от количества строк в файле #7
Цитата Сообщение от Croessmah Посмотреть сообщение
где в первом посте const?
C++
1
int glob = 3;
дак его и нет, так как я спрашиваю.. понимаю что упустил, надо было написать как есть, просто, я думал, что все знают что кол-во элементов в массиве структур должно обладать таким типом.
но вопрос всё равно остаётся.

Добавлено через 2 минуты
Цитата Сообщение от zss Посмотреть сообщение
C++
1
2
3
4
5
6
int glob;
int main()
{
    glob=count_string("c:\\boot.ini");
   ....
}
если добавим массив структур:
C++
1
2
3
4
5
6
7
8
9
10
int glob;
struct tip
{int a;
};
struct tip test[glob];
int main()
{
    glob=count_string("c:\\boot.ini");
   ....
}
получим сообщение, что для инициализации массива, glob должно быть типом const int (типо того)
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
20.01.2014, 17:54     Как инициализировать глобальную переменную в зависимости от количества строк в файле #8
Цитата Сообщение от танкист34 Посмотреть сообщение
просто, я думал, что все знают что кол-во элементов в массиве структур должно обладать таким типом.
Может Вы VLA используете? Мы ж экстрасенсы великие тут...

Используйте std::vector и не парьтесь
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
20.01.2014, 17:55     Как инициализировать глобальную переменную в зависимости от количества строк в файле #9
танкист34, размер массива должен быть константой времени компиляции, а ты glob хочешь инициализировать во время выполнения программы. Выделяй память под массив динамически.
zss
Модератор
Эксперт С++
6281 / 5884 / 1905
Регистрация: 18.12.2011
Сообщений: 15,093
Завершенные тесты: 1
20.01.2014, 17:57     Как инициализировать глобальную переменную в зависимости от количества строк в файле #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
int glob;
struct tip
{int a;
};
tip *test;
int main()
{
    glob=count_string("c:\\boot.ini");
     test=new tip[glob];
   ....
}
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
26.01.2014, 18:48  [ТС]     Как инициализировать глобальную переменную в зависимости от количества строк в файле #11
а память высвободить вот так?:
C++
1
delete [] test;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2014, 19:05     Как инициализировать глобальную переменную в зависимости от количества строк в файле
Еще ссылки по теме:

Как правильно создать глобальную переменную? - C++
Как правильно создать глобальную переменную? Если она будет в заголовочном файле, то при подключении этого файла к другим cpp, эта...

Как глобальную переменную засунуть в структуру? - C++
#include<stdio.h> #include<malloc.h> #include<string.h> typedef struct Item { char *info; struct Item *next; ...

Можете подсказать,как правильно описать глобальную переменную - C++
Как правильно описать глобальную переменную чтоб читалась во всех формах программы,и можно ли ,допустим при нажатие на кнопку в форме2...

Как (можно ли) инициализировать переменную в структуре? - C++
Как пример struct cifri { char one="ONE"; }; Почему так нельзя и как можно?

Подсчет количества строк в файле в С++ (fstream) - C++
Добрый день! Для подсчета строк в файле до сего момента использовал С'шные функции. Пожалуйста, подскажите, как это можно сделать,...


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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
26.01.2014, 19:05     Как инициализировать глобальную переменную в зависимости от количества строк в файле #12
Да, так.
Yandex
Объявления
26.01.2014, 19:05     Как инициализировать глобальную переменную в зависимости от количества строк в файле
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru