Чтение из консоли с помощью оператора While - PullRequest
2 голосов
/ 07 декабря 2010

В приведенном ниже коде cin извлекает только непустые символы, поэтому я могу легко определить количество вводимых символов, заглавных букв и т. Д., Вводимых пользователем, легко игнорируя пробелы. 1002 *

#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main( int argc, char** argv )
{
    int numberOfNonBlanks = 0;
    int numberOfUpperCase = 0;
    char c;
    while ( cin >> c )
    {
        ++numberOfNonBlanks;
        if ( ( c >= 'A' ) && ( c <= 'Z' ) )
        {
            ++numberOfUpperCase;
        }
    }
    cout << "Non blank characters: "  << numberOfNonBlanks << endl
         << "Upper case characters: " << numberOfUpperCase << endl;

    system( "PAUSE" );
}

Мой вопрос: что составляет no input? Я имею в виду использование while ( cin >> c ) Я получаю символы пользовательского ввода и подсчитываю количество чего угодно, но до какого времени? Когда это остановится? Что можно квалифицировать как no input для цикла while для выхода?

Спасибо,

1 Ответ

3 голосов
/ 07 декабря 2010

Пока вы не получите символ EOF.

Если вы вводите стандартный ввод с клавиатуры:

  • В Windows нажмите Ctrl ^ Z
  • В Unix нажмите Ctrl ^ D

Если ОС перенаправляет файл на стандартный ввод, то это обычно происходит в конце файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...