Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 23.11.2017
Сообщений: 27

Подсчет введенных строк

20.01.2018, 21:10. Показов 1426. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Задача такова: ввести с клавиатуры текст неопределенного размера
(в несколько строк) до определенного символа и сосчитать кол-во этих СТРОК. Перепробовал с разными
циклами всё что моему воображению доступно. Подскажите, пожалуйста, простое решение, уверен, оно есть, но голова
уже не соображает.
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 <stdlib.h>
using namespace std;
int main()
{
const int symbols = 1000000;
char text [symbols];
char symbol = ' ` '; // определенный символ  
int schetchik=1, i;
 
for (i=0; i < symbols; i++)
{
        cin>> text[i];
 
        if (text[i] == '\n')
             {
                schetchik++;
              }
 
       if ( text[i] == symbol) 
      {
               break;
       }
 
       else continue;
}
system ("pause");
return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.01.2018, 21:10
Ответы с готовыми решениями:

Подсчет числа введенных строк с использованием cin. get()
Доброго времени суток. Объясните, пожалуйста, в чем ошибка, почему такие последствия от cin.get()? # include &lt;iostream&gt; #...

Подсчет введенных символов
Всем добрый день. Начал изучать С++ (чисто для себя) по книгде Г. Шилдта - &quot;С++ Руководство для начинающих&quot;, там в конце 4 модуля...

Подсчет слов, введенных с клавиатуры
Есть такая практическая задача, надо написать прогу, которая считает слова при вводе их с клавиатуры, притом в несколько строк и прекращать...

2
599 / 421 / 136
Регистрация: 02.10.2008
Сообщений: 1,796
Записей в блоге: 1
20.01.2018, 23:57
Задача на Си, а не на С++

Ввод строки неизвестного размера - может оказаться и больше миллиона...
1. В Си (в С++ по наследству унаследована) есть функция realloc() - меняет размер выделенной памяти, при этом надо помнить, что всё это только с "Сишными" функциями - malloc, calloc, free, благодаря им можно оформить "динамический массив", который растёт с каждым ввезённым символом. Лучше конечно увеличивать "порциями", но это сложнее, для лабы сойдёт и с каждым новым байтом.
2. Не указан разделитель строк - предполагаем, что это '\n' - после считывания этой строки делаем поиск "переводов строки" в этом массиве и считаем их кол-во.

Это "универсальный путь"

Второе - чисто тупое решение конкретной задачи:

1.считываем символы с клавы с помощью getc() и им подобных(не знаю что вам удобнее и не знаю в какой ОС работаете - getc() - универсален, описан в стандарте Си, так же как и fgetc(), остальное - расширения)
2. Выполняем пункт 1 до тех пор, пока не встретится "символ выхода" (опять он не указан)
3. Для остальных символов смотрим, совпадают ли они символом "перевода строки" (опять же не указан какой именно, но обычно '\n') и считаем их кол-во.

Идея в Вашей программе почти правильная - соответствует второму варианту, в этом случае массив не нужен. Но вы всё это "нарисовали" на С++, а задача ставилась на Си
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
21.01.2018, 02:32
Цитата Сообщение от Aleksandr117 Посмотреть сообщение
ввести с клавиатуры текст неопределенного размера
(в несколько строк) до определенного символа и сосчитать кол-во этих СТРОК.
Если сами строки хранить не нужно, то всё просто. Заводишь счётчик строк. Читаешь из потока по одному символу, сравниваешь с предопределённым символом окончания ввода. Если совпали, бастра, карапузики. Если не совпали, сравниваешь введённый символ с '\n'. Если он, увеличиваешь счётчик. Да и всё собственно.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2018, 02:32
Помогаю со студенческими работами здесь

Подсчет числа слов во введенных данных
Приветствую. Имеется задание: напишите программу, которая должна вычислить, сколько раз каждое отдельное слово содержится во введенных...

Подсчет количества введенных с клавиатуры чисел
Реализовать ввод чисел с клавиатуры и подсчёт их длинны

Не работает подсчет суммы введенных чисел
#include &lt;iostream&gt; using namespace std; int main() { std::cout &lt;&lt; 'Enter two numbers' &lt;&lt; std::endl; int v1, v2; std::cin &gt;&gt;...

Введение массива пользователем и подсчет введенных элементов
Кто нибудь! Пожалуйста! Нужна помощь!! Как подсчитать количество элементов в произвольно введенном массиве не используя векторов и прочих...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru