Я работаю над планировщиком назначений для моей школы, код ниже представляет собой сегмент модуля для ввода данных для нового задания и последующей записи этих данных в файл. Поскольку описание назначения может быть длинным абзацем, я решил позволить пользователю перейти к новой строке после нажатия клавиши Enter для простоты ввода. Код, который у меня пока работает, работает по желанию.
Однако описание представляет собой одну строку, которая обычно заканчивается клавишей ввода. Можно ли завершить строку другим ключом? Например, клавиша Escape? Если да, то как мне это сделать?
Я думал об использовании клавиши escape «Esc» для завершения ввода строки, но я не уверен, какой код или escape-последовательность для представления ключа.
typedef struct {
char title[60];
Time duration;
Date deadline;
char descrptn[10000];
} Project;
void setStudioProject() {
Project newProj;
FILE *fpProj;
system("cls");
printf("-----PROJECT SETUP-----\n\n\n");
//Prompt for project information
printf("Title: ");
fgets(newProj.title, 60, stdin);
fflush(stdin);
printf("\n\nDescription: \n");
printf("(No more than 1000 words)\n");
//loop of concern
while (fgets(newProj.descrptn, 10000, stdin)) {
if (getchar() == '\r') { //Whenever the user presses the enter key
printf("\n"); //...move to a new line
}
}
fflush(stdin);
//...
}
Я ожидаю, что строка будет прочитана после нажатия клавиши escape, чтобы продолжить выполнение.