С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
44 / 1 / 0
Регистрация: 14.06.2014
Сообщений: 152

Работа с файлом, подсчёт символов

04.01.2015, 00:50. Показов 1117. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!
Всех с Новым Годом!
Подскажите, пожалуйста кто знает:
1. Почему цикл while не останавливается?
2. Как в этом цикле подсчитать символ "\n", сколько их в файле?
Если надо fread( ) или что-то другое, то как её тут правильно использовать?
Сам пока не могу разобраться....
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
#include <iostream>
#include <fstream>
#include <iomanip>
 
using namespace std;
int main()
{
    setlocale (LC_ALL, "RUS");
    int i;
    char a;
    int n = 20;
    int cnt = 0; //количество символов "\n"
    char m[20];
    ifstream f2;
    f2.open("D:\\temp\\test.txt", ios::in);
    for (i=0; i<n; i++)
    {
        f2 >> a;
        cout <<a << " ";
        m[i]=a;
    }
    f2.close();
    cout << endl ;
 
    f2.open("D:\\temp\\test.txt", ios::in);
    
    while (a != EOF)
    {
        f2 >> a;
//      if(a == "\n")
        {
        cnt++;
        }
        cout <<a << " ";
    }
    f2.close();
    cout << endl;
    cout << cnt;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.01.2015, 00:50
Ответы с готовыми решениями:

Работа с бинарным файлом(Подсчет записей)
void open_bin(l_lib *l, int lines_count) // функция для открытия bin файла { fstream b_file(&quot;data.bin&quot;, ios::binary | ios::in); //...

Работа с файлом. Таблица частотности для символов
Доброго времени, задача такая, открыть файл считать повторяющиеся символы ( посчитать количество ) и потом отсортировать ( пример : символ...

Работа с файлом. посчитать количество символов в строках и отцентрировать
Имеется файл input.txt . В каждой строке может быть не более 80 символов. нужно Посчитать количество символов в каждой строчке, для того,...

7
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
04.01.2015, 01:33
используйте
C++
1
2
3
4
while(f2.good())
{
//
}
1
44 / 1 / 0
Регистрация: 14.06.2014
Сообщений: 152
04.01.2015, 19:54  [ТС]
Около десятка источников просмотрел, в том числе книг, спасибо, я застрелюсь...
А как подсчитать сколько строк?
Почему мой if (a == '\n') работает не так как ожидал, я хочу число строк подсчитать, у меня их всего 3, а выдаётся 15, в чём тут ошибка?!
Какую книгу лично Вы посоветуете или ресурс в сети (справочник) все примеры которого работали бы в VisualStudio?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
04.01.2015, 20:55
Лучший ответ Сообщение было отмечено russian_pepper как решение

Решение

Цитата Сообщение от russian_pepper Посмотреть сообщение
Почему мой if (a == '\n') работает не так как ожидал, я хочу число строк подсчитать, у меня их всего 3,
В конце последней строки в файле должен быть '\n':
C++
1
2
3
4
5
6
7
8
    while (f2.get(a))
    {
        if(a == '\n')
        {
            cnt++;
        }
        cout << a << " ";
    }
Добавлено через 4 минуты
Но проще строки так читать и считать:
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
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "RUS");
   
    char m[202];
    int cnt = 0;
    ifstream f2("1.txt");
    if (!f2)
        cout << "Error!" << endl;
    else
    {
        while (f2.getline(m, 200))
        {
            cnt++;
            cout << m << endl;
        }
    
        f2.close();
    }
    cout << endl;
    cout << cnt << endl;
 
    system("pause");
}
1
44 / 1 / 0
Регистрация: 14.06.2014
Сообщений: 152
04.01.2015, 21:12  [ТС]
Я прохожу медкомиссию, ежегодно, пока диагноз, слабоумие не ставили мне, не дообследовали наверное...
Спасибо!
И С Новым Годом!
Подскажите ещё Ваш источник информации, лучший с Вашей точки зрения, если не секрет...
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
04.01.2015, 21:23
Цитата Сообщение от russian_pepper Посмотреть сообщение
Подскажите ещё Ваш источник информации, лучший с Вашей точки зрения, если не секрет...
Сложный вопрос... Книги читайте, ссылка на рекомендуемую литературу на первой странице форума. Я Прата читал:
"Язык Программирования C++. Лекции И Упражнения."
1
44 / 1 / 0
Регистрация: 14.06.2014
Сообщений: 152
04.01.2015, 21:56  [ТС]
У меня общая задача немного более сложная.
Задача такая:
Надо получать из файлов (около 8000 файлов) значения и записать их в массивы или в структуру какую-то.
Файл текстовый порядка 1 – 2 млн. строк, значения в строках разделены точкой с запятой (*.csv файлы). столбцов 52
Значения типа char, int, float и double.
Мне нужно считывать информацию из файла, обрабатывать её искать оптимальные параметры для робота (биржевая информация) лучший результат записывать в какой-то файл.
Есть информация которая ежесекундно меняется, это одни файлы и есть файлы в которых часть информации более подробная она меняется несколько раз в секунду, эти файлы нужно как-то во времени совместить и более наглядно на графиках увидеть чтобы посмотреть закономерности какие-то если есть.
Короче, моя супер программа должна открывать файлы примерно как EXCEL, только сама один за другим, попарно, как это правильно сделать.
С подсчётом строк я понял, но это наверное не совсем правильно, считать строки в файле потом делать динамические массивы… это два просмотра…
Первый раз затеял большое дело на С++ для этого и начал изучать его…
Пока разбирался с файлами попалась информация о Ассоциативных контейнерах MAP и т.д. в школе программирования об этом даже не упоминали, возможно как-то с этими MAP нужно работать….
Я буду признателен Вам за любые практические советы и замечания в решении этой задачи.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
04.01.2015, 22:02
Цитата Сообщение от russian_pepper Посмотреть сообщение
Задача такая:
Отдельная тема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.01.2015, 22:02
Помогаю со студенческими работами здесь

Работа со строками. Подсчет символов.
Здравствуйте всем. Прошу помочь с решением задачи. Дана строка, состоящая из групп нулей и единиц. Подсчитать количество единиц в...

GUI Работа с текстовым файлом, лог файлом не мешая системе
Хочу написать прогу которая будет по таймеру искать в тхт - лог файле сообщение об ошибке. Например Error: 100 Qt C++ gui изучаю недавно...

Подсчёт слов в строке. Подсчёт символов в словах строки
Начал изучение строк в С++. Решая задачу по поиску количества строк и количеству указанных символов упёрся лбом в стену. Теорию понял:...

Подсчет числа символов указанного типа в любой строке символов на SHELL
Здравствуйте)) :) Помогите, пожалуйста , разработать программу подсчета числа символов указанного типа в любой строке символов. Строка...

Подсчет цифр, символов-разделителей и прочих символов в массиве
Здравствуйте. В учебнике дан код: #include &lt;stdio.h&gt; /* подсчет цифр, символов-разделителей и прочих символов */ main() { ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru