Считывание пробела

192
26 ноября 2016, 19:06

Добрый день. Изучаю инструкцию SWITCH. Возникла проблема, не могу заставить компилятор считывать пробел?

#include <iostream>
int main()
{
    char ab;
    std::cin >> ab;
    switch(ab)
    {
    case ' ':
        std::cout<<"space"<<std::endl;
        break;
    default:
        std::cout<<"Error"<<std::endl;
        break;
    }
    return 0;
}
Answer 1

Для считывания отдельного символа лучше использовать функцию get:

cin.get(ab);

Просто cin>> пропускает пробельные символы, считая их несущественными :)

И еще... Реальное считывание произойдет после ввода . Ввод буферизуется, т.е. реальное размещение символа в ab будет после ввода всей строки, после чего в буфере останется, кстати, '\n'... Но для вашего примера это пока не важно.

READ ALSO
zlib сжатие потока

zlib сжатие потока

На первый write все хорошо, 2 и следующие возвращают Z_BUF_ERROR

189
Сборка Boost - не может найти файл corecrt.h

Сборка Boost - не может найти файл corecrt.h

Нужно срочно собрать Boost 1_62_0 на Windows 7 x64 SP1Нет файла corecrt

278
Регулярные выражения в qt

Регулярные выражения в qt

Суть проблемы: Написал я регулярное выражение, которое ищет '{' и оглядывается назад, чтобы посмотреть, нет ли там признака коментариев, и когда...

209
Segmentation fault при разборе аргументов main() c++ [закрыто]

Segmentation fault при разборе аргументов main() c++ [закрыто]

ЗдравствуйтеМне нужно определить аргументы командной строки и исходя из полученых команд проделать некие действия

164