菜单接受多个字符,即当您输入“hrhrhrhr”时,会调用一个应该通过输入“h”等来调用的函数。事实上,当输入与指定的字符不同的字符时,会出现错误被抛出并再次提供输入。我解释得很笨拙,但我不知道如何正确地表达它。这是一些简单的代码:
#include <libintl.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main()
{
char option;
bool isRunning = true;
while(isRunning == true)
{
printf("\nCapere actio: ");
fflush(stdin);
option = getchar();
switch(option)
{
case 'h':
printf("Actionis:\n");
help();
break;
case 'c':
create();
break;
case 'l':
printf("Index numerorum:\n\n");
list();
break;
case 'q':
printf("Exitus\n");
isRunning = false;
break;
default:
printf("Actio invalidum!\n");
break;
}
}
return 0;
}
get_action()
读取该行。如果字符串是一个字符,则返回该字符。如果字符串为空或太长,则返回-2
。如果输入错误来自stdin
,则返回-1
: