Считывание данных из файла в массив
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Считывание данных из файла в массив - 2009-04-08 18:25:36.570000
|
|
|
jude
Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
|
Здравствуйте! Я в программировании новичок, не могли бы помочь с одним вопросом. В файле есть 10 чисел, если число повторяется 3 или более раза , то выводятся какое это число и сколько раз оно повторилось.Может есть какая-нибудь функция??? Надеюсь что кто-нибудь поможет!!!
|
|
|
RE: Считывание данных из файла в массив - 2009-04-08 18:32:56.423333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Готовой функции нету. Нужно открыть файл, прочитать числа и подсчитать для каждого числа количество повторений. Пиши сюда код, который ты уже написал - будем помогать.
|
|
|
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]>=3 then writeln('искомое число - ',i,' повторилось',b[i],' раз'); Переборный вариант - не интересно.
|
|
|
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; ifstream infile(f); if(!infile){ cout << "Oshibka: "<< f << endl; return 1; } while (!infile.eof()) { А дальше я не знаю(((
|
|
|
RE: Считывание данных из файла в массив - 2009-04-08 19:22:41.456666
|
|
|
SkyLinE215
Сообщений: -986
Оценки: 0
Присоединился: 2007-08-27 10:25:44.570000
|
cin >> nr;
while (!infile.eof())
{
while (getline (infile, str))
{
l = str.find (nr.c_str());
if (l != -1)
k+=1;
if (k >= 3)
cout << nr << endl;
if (l == -1 && k < 3){
cout << "netu" << endl;
exit(-1);}
str.erase (0, l);
}} вот такой оптимальный вариант..
|
|
|
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 Это у меня какая-нибудь библиотека не подключена? и как я понял нужно еще структуру создать ?
|
|
|
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"….))
|
|
|
RE: Считывание данных из файла в массив - 2009-04-08 21:16:09.363333
|
|
|
jude
Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
|
Это я ступил да, просто пока новичок Genco а str должна быть типа string, или я опять туплю? Помоги пожалуйста!!
|
|
|
RE: Считывание данных из файла в массив - 2009-04-08 22:09:34.630000
|
|
|
Romeo Ordos
Сообщений: 229
Оценки: 0
Присоединился: 2006-10-13 14:50:17.960000
|
Простите, я фрипаскальщик))) ——————————————- var SFile: File of Integer; 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>=3 then writeln('Число ', Mas, ' повторилось ', counter, ' раз.'); end; CloseFile(SFile); end. Как я понял бок всех этих примеров в том, что сколь раз найденное число повторяется, столько сообщений и будет выведено на экран. Можно дописать кусочек кода, который будет помещать найденное число(или числа) в переменную, и при повторении поиска найденного ранее числа, не выводить сообщение.
|
|
|
RE: Считывание данных из файла в массив - 2009-04-08 23:08:01.006666
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Да,местами слова перепутал. str string; ~именно такого типа. Установи MSDN кстати,по нему искать неизвестные слова на предмет "что это" самое то).
|
|
|
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 >> nr;
while (!infile.eof())
{
while (getline (infile, str))
{
l = str.find (nr.c_str());
if (l != -1)
k+=1;
if (k >= 3)
cout << nr << endl;
if (l == -1 && k < 3){
cout << "netu" << endl;
exit(-1);}
str.erase (0, l);
}}
|
|
|
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 Не понимаю что это? Помогите плиз!!
|
|
|
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(); Что такое классы хоть немножко представляешь? Если нет, то лучше кинь дурное и используй массив чаров.
|
|
|
RE: Считывание данных из файла в массив - 2009-04-09 14:24:10.070000
|
|
|
jude
Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
|
std::string это как я понял это стандартный класс с++?
|
|
|
RE: Считывание данных из файла в массив - 2009-04-09 14:29:17.010000
|
|
|
jude
Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
|
и надо ли мне его как-то самому реализовать или подключить?
|
|
|
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)
|
|
|
RE: Считывание данных из файла в массив - 2009-04-09 17:34:00.320000
|
|
|
jude
Сообщений: 10
Оценки: 0
Присоединился: 2009-04-08 18:20:51.153333
|
насчет ссылок, у меня с английским плохо((очень плохо.
|
|
|
RE: Считывание данных из файла в массив - 2009-04-13 02:01:35.780000
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
В начале программы напиши "using namespace std;" и всё . Да,стандартный. Да,твои знания недостаточны.Да,плохо что инглиш не знаешь.
|
|
|
|
|