Я некоторые запятые данных в файл, например, так:Назначения Запятой разделители данных в векторные
116,88,0,44 66,45,11,33
и т.д. Я знаю, размер, и я хочу, чтобы каждая строка была его собственным объектом в векторе.
Вот моя реализация:
bool addObjects(string fileName) {
ifstream inputFile;
inputFile.open(fileName.c_str());
string fileLine;
stringstream stream1;
int element = 0;
if (!inputFile.is_open()) {
return false;
}
while(inputFile) {
getline(inputFile, fileLine); //Get the line from the file
MovingObj(fileLine); //Use an external class to parse the data by comma
stream1 << fileLine; //Assign the string to a stringstream
stream1 >> element; //Turn the string into an object for the vector
movingObjects.push_back(element); //Add the object to the vector
}
inputFile.close();
return true;
}
Не повезло до сих пор. Я получаю ошибки в
< < stream1 fileLine
и заявление push_back. Поток 1 говорит мне, что нет никакого совпадения для оператора <10 (должно быть, я включил библиотеку), а последнее говорит мне, что movingObjects не объявлен, казалось бы, думая, что это функция, когда она определена в заголовке как мой вектор ,
Может ли кто-нибудь помочь? Очень признателен!
'станд :: вектор movingObjects();' это объявление функции, если это то, что вы написали. Чтобы вызвать конструктор по умолчанию, 'std :: vector moveObjects {};' работает, но также работает 'std :: vector movingObjects;'. Для этого не требуется никаких кронштейнов/скобок. –
chris
Поиск StackOverflow для «векторного файла». Слишком много из этих связанных вопросов до сих пор. –
Кроме того, положите 'getline' в условие цикла, чтобы он не использовал неудавшееся чтение. – chris