Я новичок в C++, и у меня проблема с моей программой. Я искал часы и дни, и хотя есть много сообщений, подобных этому, я не могу понять, почему моя программа не работает.
У меня есть файл, содержащий данные таким образом.
СТРУНА ПОПЛАВОК ПОПЛАВОК
STRING INT
СТРУНА ПОПЛАВОК ПОПЛАВОК ПОПЛАВОК
STRING INT INT
ПЛАВАТЬ
ПЛАВАТЬ ...
Таким образом, в первых нескольких строках есть строка для первого столбца и число для остальных, а в какой-то момент есть просто число с плавающей запятой.
Мне удалось получить данные до того места, где начинаются все числа с плавающей запятой, но я не могу понять, как сохранить остальную часть числа в массиве. (Я ЗНАЮ, ЧТО БЫЛО бы НАМНОГО ПРОЩЕ СДЕЛАТЬ ЭТО С ВЕКТОРОМ, НО Я ДОЛЖЕН СДЕЛАТЬ ЭТО С МАССИВАМИ).
Это то, что я сделал.
void getData(string *ext, int size)
{
istringstream is(*ext);
float val;
is >> val;
float *arrVal = new float[10]; // I dont know the size of the Array.
if(typeid(val) == typeid(float)) //IM NOT SURE ABOUT THIS AT ALL. I JUST DON'T KNOW HOW TO GET TO THE LINE WHERE THERE ARE NO STRINGS
{
arr[size] = atof(*ext.c_str());
} // I think this part is why it does not work.
int main()
{
ifstream File("t.txt");
string line;
int nLines(0);
float *arrayValues = new float[12];
if(!inFile)
{
cerr << "Cannot open file." << endl;
return -1;
}
else
{
while(getline(File, line))
{
getValues(&line, nLines);
getPoints(&line); //this function gets the values of the first lines.
++nLines;
}
}
system("pause");
return 0;
}
Итак, в основном мне нужно выяснить, как перейти к строке, где начинаются все числа с плавающей запятой, и как сохранить их в массиве. Я уверен, что есть куча ошибок. Надеюсь, вы поняли, что я пытаюсь сделать. Я действительно искал везде и ничего не могу найти.
Спасибо !!
getline()
. Каждая строка должна быть проверена на начало с действительногоfloat
. Если его нет, то переходите к следующей строке. Если есть, сохраните это значение как первое и введите другой цикл, который передает оставшиеся числа с плавающей запятой и накапливает их (вместе с первым) в массив, размер которого изменяется по мере необходимости. - person WhozCraig   schedule 13.09.2013