Здравствуйте. Есть задание, нужно из файла вывести массив чисел, и сделать с ними кое-какие операции. Числа в файле:" 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();
C/C++
Извлечение из файла С++
Согласно алгоритму ты читаешь один символ и если он не пробел или не конец строки, то читаешь число
Получаешь все как и просишь
146 - читаем символ -'1' -не пробел, не конец строки читаем число 46
Получаешь все как и просишь
146 - читаем символ -'1' -не пробел, не конец строки читаем число 46
Для файла 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");
}
#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;
}
while(!cin.eof()) {
cin >> number;
}
Даниил Талан
Мне ведь нужно числа в массив запихнуть, а не в строку
Как вариант:
#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
#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
Найди в Инете примеры работы с файлами на чистом Си. Там по любому будет понятней объяснено.
Не ленись, найди и почитай.
Не ленись, найди и почитай.
Даниил Талан
Та я понимаю, нашел решение, но там слишком долго. Сделал своё, но почему-то именно 1 чар каждого числа он пропускает
Похожие вопросы
- C++ Работа с файлами.
- Помогите решить задачку по теме работа с файлами C++
- Нужно найти в бинарном файле введенные пользователем данные.
- Как в C++ продолжить классы разные сгруппировано в файлах .h и .cpp, при этом не переопределяя классы эти?
- Работа с текстовым файлом. С++
- Модули. Коммуникация между двумя .c файлами.(Си)
- Input.txt и output.txt. Работа с текстовыми файлами C++.
- Си заголовочный файл, немного бы пролить свет
- Помогите написать код с файлами C++
- Помогите написать код с файлами C++