У меня есть тестовый файл, настроенный здесь, пытающийся прочитать в CSV-файле
ifstream file;
file.open("New Microsoft Excel Worksheet.csv");
string temp;
string arr[15];
int size = 0;
int index = 0;
while (getline(file, temp, ','))
{
if (!temp.empty())
{
arr[index] = temp;
std::cout << arr[index];
size++;
index++;
}
}
Вывод
34568
29774
18421
он успешно захватывает каждый индекс и даже выстраивает их в виде row (я предполагаю, что он также захватывает \ n?)
однако мне нужно, чтобы они были целыми числами, я бы сделал это в том же l oop с функцией stoi (), но мне нужно размер массива должен быть динамическим c (я не хочу использовать векторы здесь, потому что это вписывается в другую часть кода, которая нуждается в массиве)
Вот как я превращаю их в целые числа и помещаю они в новом массиве
int *intArr = new int[size];
for (index = 0; index < size; index++)
{
intArr[index] = stoi(arr[index]);
std::cout << intArr[index];
}
и вот вывод для этого
3456897748421
Кажется, что пропускает каждое число после переключения на следующую строку в CSV Если я структурирую его правильно, вот что происходит
34568
9774
8421
Я предполагаю, что это как-то связано с CSV-файлами, дающими \n
в конце строки в файле Excel. Как я могу это исправить? Мне нужно, чтобы все значения были целыми числами, спасибо!