Как считать числа из файла в массив c
Перейти к содержимому

Как считать числа из файла в массив c

  • автор:

С++ Как извлекать числа из файла в числовой массив для дальнейшей манипуляции над этими числами?

https://inf-ege.sdamgia.ru/problem?id=37348
По ссылке содержится само задание и подкрепленный файл в формате txt
Нужно срочно для ЕГЭ . Как извлекать числа из файла в числовой массив для дальнейшего использования этих чисел ? Без C-стайла ,пожалуйста . И ,возможно ,ли сделать так со статическим массивом ? Или все -таки только коллекции ? С использованием библиотеки fstream Нужно просто ответить как считывать числа в файл на языке C++ ,а не решение этой задачи .
Я новичок ,кроме массивов больше ничего не знаю: ни векторы ,ни коллекции , ни списки.
Если с массивом не возможно , а со списком(list) возможно ?

  • Вопрос задан более двух лет назад
  • 879 просмотров

5 комментариев

Простой 5 комментариев

Евгений Шатунов @MarkusD Куратор тега C++

Как считать числа из файла в массив c

Но заместо отсортированного списка получается 2 числа, не зависимо от того, что записано во входном файле..

Пользователь
Регистрация: 20.11.2010
Сообщений: 66

Вы не совсем поняли.. N

да нет, походу кто-то другой не до понимает)))

вот так у меня все работает

#include void main() < int dig[25];//выделяю память под 25 элементов, хотя рациональней будет int i,j,N,mm,tmp;//использовать динамическую память FILE *in, *out;// условие проверки добавите сами in=fopen("D:\\input.txt","r"); out=fopen("D:\\output.txt","w"); fscanf(in,"%d",&N); for(i=0;i=1;i--) < for(j=1;j<=i;j++) if(dig[j] >dig[mm]) mm=j; tmp=dig[i]; dig[i]=dig[mm]; dig[mm]=tmp; > for(i=0;i

Последний раз редактировалось Stilet; 01.12.2010 в 20:44 .
Пользователь
Регистрация: 30.11.2010
Сообщений: 29
Огромное спасибо, всё работает. Я понял в чем моя ошибка..
Пользователь
Регистрация: 20.11.2010
Сообщений: 66
ну плюсанул бы мне отзыв)))
Пользователь
Регистрация: 30.11.2010
Сообщений: 29
Сообщение от Ledom
ну плюсанул бы мне отзыв)))

уже
Кстати, а как будет выглядеть код, если в первой строке будет 2 числа - N и M. А во второй и третьей N и M чисел соответственно?

Пользователь
Регистрация: 20.11.2010
Сообщений: 66
если ты их будешь записывать в разные массивы.
то все точно так же.

scanf(in,"%d",&N); scanf(in,"%d",&M); for(i=0;i

функции все равно ты их хоть в строчку запиши она будет считывать цифры указанного типа разделенные разделителем, и останавливается она в файле после последнего считанного указывая на следующий.
если файл не закрывать то можно продолжать последовательно считывать.

Последний раз редактировалось Stilet; 02.12.2010 в 09:21 .
Пользователь
Регистрация: 30.11.2010
Сообщений: 29

Огромное спасибо. Как еще плюсануть?

Последний вопрос
Как выявить совпадение значений в двух массивах. Пусть в тех же dig1[i] и dig2[i].
Пример:
dig1[i]=
dig2[i]=
Числа 6 и 12 встречаются в обоих массивах.

for(i=0;i

Но получаются не те числа, что я делаю не так?
Последний раз редактировалось Stilet; 02.12.2010 в 09:27 .
Пользователь
Регистрация: 20.11.2010
Сообщений: 66

ну мог бы и сам догадаться, что не так..
посмотри на свой цикл, и что ты сравниваешь.
ты сравниваешь элементы с одинаковыми индексами, а остальные, что не надо.

Страница 1 из 2 1 2 Следующая >
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание из файла чисел, сортировка массива с++ Tresk Помощь студентам 13 07.11.2010 20:01
Считывание с файла отрицательных чисел trinki Общие вопросы C/C++ 2 01.10.2010 01:39
считывание в массив saidmir Общие вопросы C/C++ 4 04.07.2010 10:18
считывание из файла U-S Общие вопросы C/C++ 0 26.02.2010 19:42

Запись чисел из файла в массив типа int

Наваял пока только это, дальше ухожу в гору ошибок. Подскажите решение, если можно как-то проще решить эту задачу был бы рад узнать как. Числа могут быть представлены по разному: в одной строке, в нескольких строках, с кучей пробелов между ними(не знаю, как адаптировать свои условия к этому).

Отслеживать
задан 11 окт 2017 в 18:04
user266908 user266908

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Где же у вас правильный вопрос. В заголовке - числа из файла в массив. Я отвечаю на него.

Вам нужен именно массив в C'шном смысле? Или в C++'ном, где его с успехом заменяет вектор? 🙂

Проще всего, пожалуй, так:

vector data; . int n; while(in >> n) data.push_back(n); 

А в тексте - уже говорите о символах. Вы уж определитесь.

И еще - проверять while(!in.eof()) - неверно, потому что флаг конца файла будет выставлен после неудачного чтения за концом файла, т.е. вы можете стоять на конце файла, но in.eof() вернет false .

Update

int n, count = 0; while(in >> n) ++count; in.clear(); in.seekg(0, ios::beg); int * data = new int[count]; count = 0; while(in >> n) data[count++] = n; 

Как считать числа из файла в массив c

2Granus
он просил считать цифры, а не число

в цикле for считать надо?

зависит от структуры твоего файла и того, что ты в действительности хочешь считывать. числа или цифры

если ЧИСЛА, каждое расположено на отдельной строке (либо через пробел), то

ifstream f("1.txt"); copy(istream_iterator(f), istream_iterator(), ostream_iterator(cout, "\n"));

I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 15.02.2012 в 16:53 .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *