Я начинающий программист. У меня есть задание, и у меня есть некоторые проблемы по этому поводу. В первую очередь моя задача:
«Предположим, что вы сканируете вводимый текст на турецком языке посимвольно с клавиатуры, которую вы можете считать устройством ввода по умолчанию, до тех пор, пока не будет нажата CTRL-D. Предполагается, что вы пропускаете знаки пунктуации, а также пробелы. . Ваша программа будет отображать частоты букв и цифр всякий раз, когда процесс сканирования будет завершен. Вам необходимо обсудить структуру данных, а также решение блок-схемы и передать их вместе с вашим кодом».
Я провел небольшое исследование и обнаружил, что команда CTRL + D соответствует EOF. Я написал свой код, но он не работает так, как я хочу. Вот мой код.
#include <stdio.h>
#include "stdlib.h"
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Turkish");
char message[1000] = { ' ' };
char ch;
int i = 0;
printf("Please enter your message: ");
while (ch = getchar() != EOF )
{
message[i] = ch;
i++;
}
for (i; i >= 0; i--)
{
printf("%c", message[i]);
}
printf("\n\n");
system("PAUSE");
return 0;
}
Когда я его запускаю, я что-то пишу и нажимаю ctrl+d, но как видите на картинке ничего не происходит. Просто пишет ^D. Спасибо за помощь.