У меня возникла проблема с попыткой извлечь данные из текстового файла с помощью структуры и затем сохранить ее в вектор. Но независимо от того, пыжа я, если я не изменить значение поплавка, ИНТ в строки, она всегда будет давать мне ошибки, как это:Извлечь данные из текстового файла в структуру
MissionPlan.cpp:190: error: invalid conversion from ‘void*’ to ‘char**’
MissionPlan.cpp:190: error: cannot convert ‘float’ to ‘size_t*’ for argument ‘2’ to ‘__ssize_t getline(char**, size_t*, FILE*)
Это моя структура:
struct CivIndexDB {
float civInd;
int x;
int y;
}
Это мое пример текстового файла:
3.2341:2:3
1.5234:3:4
Это код, который я использую для извлечения данных из текстового файла, а затем хранить его в векторе:
string line = "";
while (getline(civIndexFile,line)) {
stringstream linestream(line);
getline(linestream,civDb.civInd,':');
getline(linestream,civDb.x,':');
getline(linestream,civDb.y);
civIndexesList.push_back(civDb);
}
Изменение типов переменных в структуре на строку не то, что мне нужно, как позже в приложении, мне нужно отсортировать векторные значения на основе его значения float.
Я ценю любую помощь. Благодаря!
Почему бы вам не использовать двоичные файлы? Я не помню, как писать двоичный файл, но я думаю, что в вашем примере они более подходят. – MRB
Вы всегда можете прочитать строку, а затем преобразовать строку в число, необходимое в вашей структуре. Но я думаю, что ответ P0W является самым простым. – john
@john, если переменные struct имеют строковый тип, тогда данные, хранящиеся в векторе, должны быть строковыми. Даже если я преобразую строку в нужный мне тип, мне все равно понадобится вектор, способный хранить float, int, int (который, я думаю, невозможен), и отсортировать его позже. –