Всем привет! Изучаю C++ по книге Лафоре - ООП в C++.
Всё шло прекрасно, до момента появления в примерах виндового заголовочного файла «conio.h» и входящей в него функции getche().
Пошарившись по форумам нашёл кусок кода который имитирует функцию getche(), но приспособив её в код примера из книги, на выходе получил, что ввод с клавиатуры не осуществляется, вот уже час чешу репу и не могу понять где костыль, надеюсь на вашу помощь. Если в кратце, то программа подсчитывает количество введённых символов и слов, а после нажатия ENTER, выводит результат. Ниже привожу листинг:
#include <iostream>
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
using namespace std;
int getche()
{
struct termios oldt, newt;
int ch;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
return ch;
}
int main(){
int symbols = 0;
int words = 1;
char ch = 'a';
cout << "Введите строку: ";
while(ch != '\r'){
ch = getche();
if(ch == ' ')
words++;
else
symbols++;
}
cout << "\nСлов: " << words << endl;
cout << "Букв: " << (symbols-1) << endl;
}