Программа должна посчитать количество символов и слов в введённой строке, считывание осуществляется при помощи функции getche().
Пример из учебника:
#include "pch.h"
#include <iostream>
#include <conio.h>
#pragma warning(disable : 4996)
using namespace std;
int main()
{
int chcount = 0;
int wdcount = 1;
char ch = 'a';
cout << "Enter a phrase: ";
while (ch != '\r')
{
ch = getche();
if (ch == ' ')
wdcount++;
else
chcount++;
}
cout << "\nWords=" << wdcount << endl
<< "Letters= " << (chcount - 1) << endl;
return 0;
}
Вывод такой программы будет не правильным. Например: при строке "dfg" количество символов(chcount) будет равно 6, при строке "dfg dfg" кол-во символов будет 13.
Функция getche() возвращает очередной символ, считанный с консоли, и выводит этот символ на экран.
Пошаманив с отладкой, предполагаю, что после вывода полученного символа на экран считывает его ещё раз, притом в виде "\0".
Windows. Visual Studio 2017.
Это связанно с принципом работы getche? VS? В более поздних версиях VS или новых стандартах C++ старая функция совсем ненормально работает?
Как написано тут при компиляции с динамической библиотекой /MD функция getche() работает правильно в Visual Studio 2017.
Проект -> Свойства проекта -> Свойства конфигурации -> C/C++ -> Создание кода -> Библиотека времени выполнения -> Многопоточный DLL (/MD) Не уверен что решает проблему полностью, но в данном примере getche() начинает работать корректно.
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Исполняемое приложение подключает плагинКак внутри этого плагина узнать абсолютный путь по которому он лежит?
Подскажите, как корректно пройтись по вектору и удалить некоторые его элементыТ
Смотрел видео Mike Acton и там рассказывалось, что в геймдеве не используют исключения, RTTI и тд
создал бота, начал использовать telegram api проект собирается при помощи maven докинул зависимость