如何在c上读取输入

如何在c上读取输入,c,C,此功能将由菜单调用 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:

此功能将由菜单调用

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();}

两种方法都不起作用,有什么建议吗

这两种方法都不起作用,有什么建议吗

函数
scanf
返回成功扫描的项目数。你应该检查它的回报率,如果它不符合你的期望,就回去


您还应该知道
%d
忽略空白。因此,如果用户在没有输入整数的情况下点击return,
scanf
只是跳过它并等待其他内容

如果坚持不以这种方式忽略空白,则应避免使用
scanf
,并使用其他输入方法,如
fgets
。逐行从用户处获取输入,并使用
sscanf
strtoul
strtok
来理解它

这两种方法都不起作用,有什么建议吗

函数
scanf
返回成功扫描的项目数。你应该检查它的回报率,如果它不符合你的期望,就回去


您还应该知道
%d
忽略空白。因此,如果用户在没有输入整数的情况下点击return,
scanf
只是跳过它并等待其他内容


如果坚持不以这种方式忽略空白,则应避免使用
scanf
,并使用其他输入方法,如
fgets
。逐行从用户处获取输入,并使用
sscanf
strtoul
strtok
来理解它。

在提出此问题之前,您阅读了哪本手册。。。是什么让你认为“\n”在C中总是10?C不需要ASCII…在提出此问题之前,您阅读了哪本手册。。。是什么让你认为“\n”在C中总是10?C不需要ASCII。。。
if(first == 10) /**which is 10 is ASCII code for enter**/

{main()}