Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Serjin
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 22
#1

Ввод из файла в массив и нахождение наиболее встречающегося элемента - C++

30.11.2014, 10:42. Просмотров 1052. Ответов 43
Метки нет (Все метки)

Добрый день (вечер)! Нужно написать программу так, чтобы она создавала файл из рандомных чисел, далее нужно вывести содержимое этого файла на экран, затем в этом содержимом файла найти наиболее встречающийся символ и заменить его на '+'. Я сделал так, чтобы файл создавался, выводился на экран, а вот как найти наиболее встречающийся символ и заменить его на '+' понять не могу. Мои мысли сводятся к тому, что нужно содержимое файла записать в строчный массив, затем уже с этим массивом работать и искать символы, но как это реализовать, не могу понять.
Вот код моих наработок :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <ctime>
#include <stdio.h>
#include<time.h>
#include <cstdio>
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
#include <Windows.h>
#include <stdio.h> 
#include <conio.h>
#include <string.h>
using namespace std;
void fun1();
void fun2();
void fun3();
void fun4();
void fun5();
char i;
char *Array = new char(10);
char *k = new char(1);
const char N=20;
int main(){
while (1)  {
    setlocale (0,"");
      cout<<"1.Сгенерировать \n"<<"2.Показать \n"<<"3.Изменить \n"<<"4.Об Авторе \n"<<"5.Выход \n";
      int n;
      cin>>n;
      switch (n) {
             case 1: fun1(); break;
             case 2: fun2(); break;
             case 3: fun3(); break;
             case 4: fun4(); break;
             case 5: return 0; break;
             default: cout<<"Не выбран пункт меню \n"; break;
             }
      }    
}
void fun1() {
        setlocale (0,"");
     srand(time(0));
ofstream file("t.txt");
for(i=0; i<10; i++)
file<<(char)(rand()%91+32);                                                                                
     }
void fun2() {
ifstream file("t.txt");
while (!file.eof())
{
for (char i=0;i<N;i++)
{ 
file.get(Array[i]);
}
Array[i] = '\n';
for (char j = 0; j < i; ++ j)
cout << Array[j];
cout<<"\n";                                                                                                  
}    
}
void fun3() {
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2014, 10:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод из файла в массив и нахождение наиболее встречающегося элемента (C++):

Найти в массиве и вывести значение наиболее часто встречающегося элемента - C++
Здравствуйте вы мне можете помочь? вот условие задачи, её надо сделать на С.... заранее благоларю... 1. Найти в массиве и вывести...

Найти в массиве и вывести значение наиболее часто встречающегося элемента. - C++
ПАцаны помогите, попадаю... отблагадарю... 1. Найти в массиве и вывести значение наиболее часто встре* чающегося элемента.

Нахождение номера элемента строки - C++ через ввод вывод - C++
Задача. Дано целое число n и набор из n целых чисел . Найти номера первого и последнего макс элемента из данного набора и вывести их в...

Ввод из файла в массив - C++
Приветствую. Вопрос, конечно, проще некуда... но всё же. Как организовать ввод из файла чисел в массив. В бэйсике, если память не...

Ввод данных в массив с файла с++ - C++
есть файл input.txt в нем 2 строки, на первой - одно число(размер массива), на второй ряд чисел(массив), как можно присвоить переменной...

двойной массив.ввод из файла - C++
Доброго времени суток. Подскажите пожалуйста, почему не получается ввод из файла в двойной массив? #include &lt;iostream&gt; #include &lt;conio&gt;...

43
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.11.2014, 10:54 #2
Serjin, тебе объяснить алгоритм или написать пример?
0
zss
Модератор
Эксперт С++
6628 / 6190 / 2048
Регистрация: 18.12.2011
Сообщений: 16,138
Завершенные тесты: 1
30.11.2014, 10:55 #3
1. Зачем столько инклюдов?
2. Не используйте глобальные переменные без КРАЙНЕЙ необходимости.
3. По существу вопроса. Заведите целочисленный массив на 256 шт и обнулите.
Далее читайте файл посимвольно и увеличивайте на 1 элемент массива с номером равным коду прочитанного символа: file>>c;a[c]++;
Когда файл закончится найдите в массиве максимальный элемент. Номер его и будет кодом, который надо менять.
0
Serjin
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 22
30.11.2014, 11:11  [ТС] #4
А можете мне это реализовать на коде, а то я только начал изучать c++ и для меня это сделать будет очень сложно, много инклудов, так как я на разных сайтах много чего вычитывал и пытался реализовать, потом все стирал, так как не получалось и не удалили инклуды.

Добавлено через 45 секунд
ыфырф1992 , лучше написать пример, основываясь на моем коде, заранее спасибо
0
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.11.2014, 11:15 #5
Serjin, вы изучаете для себя или чтобы на семестр или 2 сдать лабы и забыть? Если для себя у вас не правильный подход к изучению.
0
Serjin
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 22
30.11.2014, 11:19  [ТС] #6
Мне это задали на семестре, но я раньше не изучал программирование, теперь приходится все искать и изучать

Добавлено через 1 минуту
Я уже 2 дня сижу над программой и не могу понять, как заставить ее это сделать, перечитал кучу статей и все не то, вот теперь прошу помощи у знающих людей, чтоб хоть как-то понять, как это можно реализовать
0
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.11.2014, 11:21 #7
Сейчас нет времени, если раньше не ответят поздно ночью напишу программу. Если хотите действительно что то понимать то надо с начало читать книгу, из статей получается каша вы много не понимаете
1
Serjin
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 22
30.11.2014, 11:23  [ТС] #8
Спасибо, буду ждать вашу программу, у меня вопрос, я правильно вывел содержание файла на экран?

Добавлено через 45 секунд
или можно было бы сделать все намного легче?
0
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.11.2014, 11:32 #9
Serjin, не самый плохой вариант, тем более массив вам будет нужен так что тут все нормально. Для вашего уровня знаний не нужно использовать функции. Можно было сделать компактнее. считал символ в массив тут же его вывел и т.д. инклюдов нужно всего несколько или даже 1. Не нужно использовать глобальные переменные.

Добавлено через 24 секунды
хотя нет простите, а программа что то выводит мне аж интересно стало??

Добавлено через 49 секунд
0
Serjin
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 22
30.11.2014, 11:33  [ТС] #10
Нет, при нажатие цифорки '2' , я просто смотрю, какие символы у меня t.txt записались
0
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.11.2014, 11:34 #11
C++
1
char j = 0; надо int j=0;
0
Serjin
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 22
30.11.2014, 11:37  [ТС] #12
а далее мне нужно изменить содержание файла так, как я описывал ранее

Добавлено через 31 секунду
А разве int j мне не даст работы только с цифрами?

Добавлено через 2 минуты
Попробовал исправить, вывел тоже самое, суть не изменилась, спасибо за подсказку
0
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.11.2014, 11:40 #13
Суть не меняется потому, это 1 из многих ошибок. Вы не понимаете что такое массивы и как они работают.
C++
1
char i=0; надо int i=0;
0
Serjin
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 22
30.11.2014, 11:42  [ТС] #14
Спасибо, очень буду ждать ваше программы чтобы понять, как надо было все-такие ее написать и буду разбираться почему так, а сейчас пойду почитаю про массив.
0
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 200
30.11.2014, 11:46 #15
Serjin, нет вам массивы пока рано, прата язык программирования с++ лекции и упражнения 2011. Начинайте читать со 2 главы. Даже если что то знаете все равно читайте и делайте упражнения, у вас слишком большие пробелы в знаниях

Добавлено через 18 секунд
Программу я вам напишу и объясню
0
30.11.2014, 11:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2014, 11:46
Привет! Вот еще темы с ответами:

Нахождение наиболее подходящей последовательности - C++
Здравствуйте! Неоднократно сталкивался с разными задачами, которые, как мне кажется, сводятся к одной и той же. Хотел бы, чтобы кто-нибудь...

Ввод дробных чисел из файла в массив - C++
Доброго времени суток. Возникла проблема с программой. Необходимо вывести из файла дробные числа вида 1/7 и ввести их в массив arr. ...

Ввод данных в динамический массив из файла - C++
В задаче написано: введение данных в динамический массив делать из файла. Как это?

Ввод данных в динамический массив из файла - C++
написал программу, вроде все по правилам,только почему-то каждый раз переходит по стрелке &quot;файл не открыт&quot; #include &lt;iostream&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.