此功能将由菜单调用。
void exponentiation()
{
int i, result = 0, first, second;
printf("\n%s\n%s\n\n%s",
"1) Exponentiation",
"------------------",
"Enter 1st integer: ");
scanf("%d", &first);
printf("Enter 2nd integer: ");
scanf("%d", &second);
printf("%d raised to %d equals %d\n", first, second, result);
main();
}
从这个函数我需要读取用户输入,如果用户输入是“enter”而没有任何整数,它应该返回到调用main()的菜单。
我已经尝试过获取输入。 例如:
if(first == '\n')
{main();}
或
if(first == 10) /**which is 10 is ASCII code for enter**/
{main()}
这两种方式根本不起作用,有什么建议吗?
答案 0 :(得分:4)
两种方式根本不起作用,任何建议
函数scanf
返回成功扫描的项目数。如果不符合您的期望,您应该检查它的返回并返回。
此外,您应该知道 %d
忽略空白。因此,如果用户在没有输入整数的情况下点击返回,scanf
只是跳过它并等待其他内容。
如果您坚持不以这种方式忽略空格,则应避免使用scanf
并使用其他输入法,例如fgets
。逐行获取用户的输入,并使用sscanf
,strtoul
和strtok
来理解它。