Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
koder
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 28
#1

Как этот код работает? - C++

20.06.2012, 00:16. Просмотров 513. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main ()
{
    char ch = 0;
    int count = 0;
 
    cout << "Please enter a sentence:" << endl;
    
    while ((cin >> ch) && ch != '$')
    {
        if (ch == '.')
        {
            count++;
        }
    }
 
    cout << "Dots: " << count << endl;
 
    system("pause");
    return 0;
}
Было задание в книге Шилдта на 153 странице :

Напишите программу, которая считывает с клавиатуры символы до тех
пор, пока не будет введен символ "$". Организуйте в программе подсчет
количества введенных точек. Результаты подсчета должны выводиться по
окончании выполнения программы.

Думал над его реализацией пол дня с перерывами,мозг кипел а толку не было,отчаившись решил загуглить и нашел код что выше,как раз в нем я и увидел почему никак не мог придумать алгоритма на основе прочитанных данных из 154 страниц.

Если в переменную с типом данных char,можно занести только один символ,то как работает этот скрипт,если в переменную ch можно ввести большое количество символов и в любой последовательности расставить точки,то он все ровно просчитает правильно количество точек.Два вопроса : Как вмещается больше чем один символ при том,что если вывести то будет показан первый символ и все? И как находятся эти точки?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2012, 00:16     Как этот код работает?
Посмотрите здесь:

Не могу понять как работает этот код в деталях - C++
dg1-&gt;Rows-&gt;Clear();//Очищяет в датагриде строки ifstream infile (StrToChar(openFileDialog1-&gt;FileName));//Чтение из файла ...

Почему этот код работает? - C++
Почему этот код работает без единого предупреждения? Мы заведомо вылазим за границу массива. Известно что если размерность массива n,...

Здравствуйте, Почему не работает этот код? - C++
Здравствуйте.Прошу помочь.Почему не работает этот код? std::ifstream input_file(&quot;http://nanshakov.16mb.com/developed/test/hash.txt&quot;); ...

код, который прекрасно выполняет Code::Blocks не выполняеться в Студии, как сделатьь так чтобы Студия воспринимала этот код?? - C++
Ребята, обьясните мне чего код, который прекрасно выполняет Code::Blocks не выполняеться в Студии, там требуються существенно другие...

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

Как этот код будет выглядеть на C++ - C++
For i:=0 to FieldsCount-1 do Fields.Clear; Как этот код будет выглядеть на C++

Как структуру впихнуть в этот код с++ - C++
написала обычный код с циклом, но нужно чтобы структура была. пыталась втиснуть, но каша какая-то помогите, прошу. хотя бы скажите...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1747 / 1090 / 71
Регистрация: 13.09.2011
Сообщений: 3,120
20.06.2012, 00:27     Как этот код работает? #2
В переменную последовательно заносятся значения из буфера потока ввода.
koder
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 28
20.06.2012, 00:53  [ТС]     Как этот код работает? #3
А почему тогда если ввести hgdfdf,то всегда будет выводить h,то есть первый символ и все.Вообщем не пойму как в одной переменной с одним символом,может вводится множество символов и в них ещё проверятся совпадение на некоторые символы,если опять же нельзя вывести эту последовательность,то как оно в ней находит определенные символы?
NoMasters
Псевдослучайный
1747 / 1090 / 71
Регистрация: 13.09.2011
Сообщений: 3,120
20.06.2012, 00:59     Как этот код работает? #4
Ещё раз: в там всё время один символ. На каждой итерации цикла значение обновляется, извлекая следующий символ из потока ввода. Если бы вы выводили содержимое внутри цикла, то последовательно вывелась бы вся вводимая последовательность.
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,728
20.06.2012, 01:15     Как этот код работает? #5
попробуем по другому
нажали Ф в ch Ф
нажали В в ch В (Ф затерлась сиречь потерялась)
это как в магазине у кассы может быть только один человек подошел другой первый отошел
так понятней???

Добавлено через 2 минуты
Цитата Сообщение от koder Посмотреть сообщение
А почему тогда если ввести hgdfdf,то всегда будет выводить h,то есть первый символ
это где это у тебя выводится символ???
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
20.06.2012, 01:34     Как этот код работает? #6
koder

Изучаем цикл while{};

А так если вы попробуете (cin >> ch) засунуть вперед то и получите, то чего ждали...

Проста каждый раз идет функция cin >> ch ,поэтому буффер не переполняется...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2012, 09:24     Как этот код работает?
Еще ссылки по теме:

Как привязать этот код в форму - C++
//Хеш-функция для алгоритма Рабина-Карпа public static int Hash(string x) { int p = 31; //Простое число ...

Как работает этот цикл???) - C++
for(int i=0; (s1 = s2)!='\0';i++) Массивы s1 и s2 символьные

Как работает этот цикл? - C++
как это работает? выдает k=7, y=270; хотя здравый смысл говорит,что на 1-ой итерации y=70,на 2-ой 720,... int y=6; int k=0; ...

Как можно перевести этот код с паскаля в с++? - C++
program razbienie_mnozhestwa(input,output); var i,j,k,n:byte;wper:arrayof boolean; sled,pred,blok:arrayof byte; procedure...

Как работает этот вектор построчно? - C++
Есть код под консольку визуал студио 2013 с++.Суть во всех последовательностях позитивных чисел изменяет порядок элементов на...


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

Или воспользуйтесь поиском по форуму:
koder
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 28
20.06.2012, 09:24  [ТС]     Как этот код работает? #7
Цитата Сообщение от NoMasters Посмотреть сообщение
Ещё раз: в там всё время один символ. На каждой итерации цикла значение обновляется, извлекая следующий символ из потока ввода. Если бы вы выводили содержимое внутри цикла, то последовательно вывелась бы вся вводимая последовательность.
Все понял.Спасибо).Сегодня с утра это показалось очень просто,а вчера что то совсем ни в какую,я когда смотрел на код,то игнорировал цикл и думал,если ввести 80 символов,то циклу хватит одного раза для добавления их в переменную,вот из такого дальше и появились проблемы понимания.Вообщем перегрелся наверное.

Всем спасибо за помощь и ответы.
Yandex
Объявления
20.06.2012, 09:24     Как этот код работает?
Ответ Создать тему
Опции темы

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