C/C++

Извлечение из файла С++

Здравствуйте. Есть задание, нужно из файла вывести массив чисел, и сделать с ними кое-какие операции. Числа в файле:" 114 141 150 155 157 174 174 182 183 198". Проблема заключается в том, что выводит :"14 41 50 55 57 74 74 82 83 98"
Код программы: if (fin.is_open())
{
char ch;
int i = 0;
while (fin.get(ch))
{
if (ch == ' ')
{
continue;
i++;
}
else if (ch == '\n')
{
break;
}
else
{
fin >> arr[i];
i++;
}
}
}
fin.close();
Согласно алгоритму ты читаешь один символ и если он не пробел или не конец строки, то читаешь число
Получаешь все как и просишь
146 - читаем символ -'1' -не пробел, не конец строки читаем число 46
Олег Горелко
Олег Горелко
79 120
Лучший ответ
Для файла numbers.txt, в котором в первой строке задано количество элементов в массиве, а во второй целые числа через пробел в количестве не меньше заданного

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main() {
ifstream file("numbers.txt");
if (file.is_open()) {
int n;
file >> n;
auto box = new int[n];
for (int i = 0; i < n; ++i) file >> box[i];
file.close();
for (int i = 0; i < n; ++i) cout << setw(4) << box[i];
puts("");
delete[] box;
}
system("pause > nul");
}
Даниил Талан Спасибо большое, попробую
string number;
while(!cin.eof()) {
cin >> number;
}
Эльдар12Mk .
Эльдар12Mk .
84 270
Даниил Талан Мне ведь нужно числа в массив запихнуть, а не в строку
Как вариант:
#include < iostream >
#include < fstream >
#include < vector >
#include < iterator >

using namespace std;

int main() {
ifstream f("input.txt");

vector< int > v;

copy(istream_iterator< int >(f), istream_iterator< int >(), back_inserter(v));

for(int item : v) {
//просто показать, что целые и можно работать
cout << item << " : " << item + 1 << endl;
}
}

https://www.onlinegdb.com/H17iY0qiw
SH
S H E D E V R 07
84 764
Найди в Инете примеры работы с файлами на чистом Си. Там по любому будет понятней объяснено.
Не ленись, найди и почитай.
Даниил Талан Та я понимаю, нашел решение, но там слишком долго. Сделал своё, но почему-то именно 1 чар каждого числа он пропускает