Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Считывание данных из файла в массив

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Считывание данных из файла в массив
Имя
Сообщение << Старые топики   Новые топики >>
Считывание данных из файла в массив - 2009-04-08 18:25:36.570000   
jude

Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
Здравствуйте! Я в программировании новичок, не могли бы помочь с одним вопросом.
В файле есть 10 чисел, если число повторяется 3 или более раза , то
выводятся какое это число и сколько раз оно повторилось.Может есть какая-нибудь функция??? Надеюсь что кто-нибудь поможет!!!
Post #: 1
RE: Считывание данных из файла в массив - 2009-04-08 18:32:56.423333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Готовой функции нету. Нужно открыть файл, прочитать числа и подсчитать для каждого числа количество повторений.
Пиши сюда код, который ты уже написал - будем помогать.
Post #: 2
RE: Считывание данных из файла в массив - 2009-04-08 18:57:34.153333   
gotoxardas

Сообщений: 842
Оценки: 0
Присоединился: 2007-05-25 08:15:21.840000
Изящный код, но работает только для натуральных чисел не превышающих 10^8.
for i:=1 to 10 do inc(b[a[i]]) // a - массив, в который ты считал свои числа for i:=1 to n do // n - задаешь сам, смотря в каких пределах у тебя входные числа if b[i]&gt;=3 then writeln('искомое число - ',i,' повторилось',b[i],' раз');
Переборный вариант - не интересно.
Post #: 3
RE: Считывание данных из файла в массив - 2009-04-08 19:14:39.470000   
jude

Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
gotoxardas спс за код, но мне бы на C++, точнее на visual C++
насчет кода что я написал
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
const char *f = "fail.txt";

int i,n,sum=0;
const int SIZE=12
int massiv;
&nbsp;&nbsp;&nbsp; ifstream infile(f);

&nbsp;&nbsp;&nbsp; if(!infile){
&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Oshibka: "&lt;&lt; f &lt;&lt; endl;
&nbsp;&nbsp;&nbsp; return 1;
}
while (!infile.eof())
{
А дальше я не знаю(((
Post #: 4
RE: Считывание данных из файла в массив - 2009-04-08 19:22:41.456666   
SkyLinE215

Сообщений: -986
Оценки: 0
Присоединился: 2007-08-27 10:25:44.570000
cin &gt;&gt; nr; while (!infile.eof()) { while (getline (infile, str)) { l = str.find (nr.c_str()); if (l != -1) k+=1; if (k &gt;= 3) cout &lt;&lt; nr &lt;&lt; endl; if (l == -1 &amp;&amp; k &lt; 3){ cout &lt;&lt; "netu" &lt;&lt; endl; exit(-1);} str.erase (0, l); }} вот такой оптимальный вариант..
Post #: 5
RE: Считывание данных из файла в массив - 2009-04-08 20:21:27.120000   
jude

Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
SkyLinE215 спасибо за код, переменная nr это и есть моя n? Если да то мне компилятор выдает ошибки
error C2065: 'getline' : undeclared identifier
error C2065: 'str' : undeclared identifier
error C2065: 'l' : undeclared identifier
error C2228: left of '.find' must have class/struct/union type
error C2228: left of '.c_str' must have class/struct/union type
Это у меня какая-нибудь библиотека не подключена? и как я понял нужно еще структуру создать ?
Post #: 6
RE: Считывание данных из файла в массив - 2009-04-08 21:01:11.393333   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Чувак,ну не позорься. Это был дан функциональный кусок кода в надежде что переменные ты объявишь сам,инклюды сделаешь. str string; int l; #include "string.h"….))
Post #: 7
RE: Считывание данных из файла в массив - 2009-04-08 21:16:09.363333   
jude

Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
Это я ступил да, просто пока новичок
Genco а str должна быть типа string, или я опять туплю?
Помоги пожалуйста!!
Post #: 8
RE: Считывание данных из файла в массив - 2009-04-08 22:09:34.630000   
Romeo Ordos

Сообщений: 229
Оценки: 0
Присоединился: 2006-10-13 14:50:17.960000
Простите, я фрипаскальщик)))

——————————————-
var
SFile: File of Integer;
&nbsp;Mas: array[1..10] of integer;
i,j: integer;

Begin
AssignFile(SFile,'array.dat');
Reset(SFile);
for i:=1 to 10 do
begin
Read(SFile,Mas
);// Читаем данные
counter:=0;
for j:=1 to 10 do
begin
if Mas=Mas[j] then counter:=counter+1;
end;
if counter&gt;=3 then writeln('Число ', Mas, ' повторилось ', counter, ' раз.');
end;
CloseFile(SFile);
end.


Как я понял бок всех этих примеров в том, что сколь раз найденное число повторяется, столько сообщений и будет выведено на экран. Можно дописать кусочек кода, который будет помещать найденное число(или числа) в переменную, и при повторении поиска найденного ранее числа, не выводить сообщение.
Post #: 9
RE: Считывание данных из файла в массив - 2009-04-08 23:08:01.006666   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Да,местами слова перепутал. str string; ~именно такого типа. Установи MSDN кстати,по нему искать неизвестные слова на предмет "что это" самое то).
Post #: 10
RE: Считывание данных из файла в массив - 2009-04-08 23:08:02.010000   
SkyLinE215

Сообщений: -986
Оценки: 0
Присоединился: 2007-08-27 10:25:44.570000
quote:

ORIGINAL: jude

Это я ступил да, просто пока новичок
Genco а str должна быть типа string, или я опять туплю?
Помоги пожалуйста!!

да, str должна быть типа string…
 
кстати, что касается моего кода, я забыл там поставить
str.erase (0, l); // чтобы потом искать дальше, а не опять одно и то же..
 
код:
cin &gt;&gt; nr; while (!infile.eof()) { while (getline (infile, str)) { l = str.find (nr.c_str()); if (l != -1) k+=1; if (k &gt;= 3) cout &lt;&lt; nr &lt;&lt; endl; if (l == -1 &amp;&amp; k &lt; 3){ cout &lt;&lt; "netu" &lt;&lt; endl; exit(-1);} str.erase (0, l); }}
Post #: 11
RE: Считывание данных из файла в массив - 2009-04-09 12:10:10.550000   
jude

Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
у меня вылезает следующая ошибка
error C2228: left of '.c_str' must have class/struct/union type
Не понимаю что это? Помогите плиз!!
Post #: 12
RE: Считывание данных из файла в массив - 2009-04-09 14:14:48.190000   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
quote:

ORIGINAL: jude

у меня вылезает следующая ошибка
error C2228: left of '.c_str' must have class/struct/union type
Не понимаю что это? Помогите плиз!!

функция c_str являетя методом класса std::string.
std::string s; ... s.c_str();
Что такое классы хоть немножко представляешь? Если нет, то лучше кинь дурное и используй массив чаров.
Post #: 13
RE: Считывание данных из файла в массив - 2009-04-09 14:24:10.070000   
jude

Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
std::string это как я понял это стандартный класс с++?
Post #: 14
RE: Считывание данных из файла в массив - 2009-04-09 14:29:17.010000   
jude

Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
и надо ли мне его как-то самому реализовать или подключить?
Post #: 15
RE: Считывание данных из файла в массив - 2009-04-09 14:59:20.220000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Гугл:

http://ru.wikipedia.org/wiki/Стандартная_библиотека_шаблонов
http://www.cplusplus.com/reference/string/string/
http://en.wikipedia.org/wiki/String_(C%2B%2B)
Post #: 16
RE: Считывание данных из файла в массив - 2009-04-09 17:34:00.320000   
jude

Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
насчет ссылок, у меня с английским плохо((очень плохо.
Post #: 17
RE: Считывание данных из файла в массив - 2009-04-13 02:01:35.780000   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
В начале программы напиши "using namespace std;" и всё . Да,стандартный. Да,твои знания недостаточны.Да,плохо что инглиш не знаешь.
Post #: 18
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Считывание данных из файла в массив







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.