Мне нужно определить глобальный массив в моем C++-коде, размер которого должен быть прочитан из файла. Я использую следующий кодОпределить глобальные переменные из ввода файла C++
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
string inputfile = "input.txt";
ifstream infile(inputfile.c_str());
infile>>N; // N = size of Array
int array[N];
// ------some code here-----
int main(){
int N;
cout << N<<endl;
return 0;
}
Но если поместить 3 линии
string inputfile = "input.txt";
ifstream infile(inputfile.c_str());
infile>>N; // N = size of Array
внутри основного контура этот код работает. К сожалению, я не могу помещать его в какую-либо функцию, потому что мне нужно инициализировать глобальный массив из переменной N.
Я спросил много людей и искал разные места, но я не могу понять это. Спасибо за вашу помощь.
К сожалению .. какой цикл? Вы в цикле диспетчеризации событий win32 или что? –
В качестве исполняемого кода правила _general_ должно оставаться внутри функции. Вот почему ваш первый код даже не компилируется. Объявите 'int * array' глобальным и распределите память, когда у вас есть значение для' N'. Лучше: вы на C++, затем используйте 'std :: vector'. –
Вы не можете. Заявления должны идти в функции. Лучшее, что вы можете сделать, это использовать какой-то инструмент создания кода во время компиляции. –