当前位置: 首页 > 知识库问答 >
问题:

简单的C菜单构建,不拖拽输入

滕璞瑜
2023-03-14

我正在尝试制作一个具有菜单系统的程序,用户可以选择一个选项,输入所需的数字,然后执行一些操作(在本例中为位移位),然后返回菜单。。。但是,到目前为止,在测试此代码时,输出如下:

                 Main Menu    
                ---------    
1. Perform Left Bit Shift Operation (one value)
2. Perform Right Bit Shift Operation (one value)
3. Perform Binary AND Operation (two values)
4. Perform Binary OR Operation (two values)
5. Perform Binary One's Complement (~) Operation (one value)
6. Perform Binary XOR Operation (two values)
7. Quit 
1


Entered Integer: 0
Left Shifted: 0

它完全跳过我接下来的两条scanf语句,只打印我初始化的值。是什么导致了这个问题?另外,显示以位表示的整数的最简单方法是什么?我想让showbit(int inttobit)做的是接受一个整数并打印它的二进制表示形式(有32个占位符):例如:1234=000000000000000000000 10011010010无论如何,下面是我当前的代码:

#include <stdio.h>
#include <string.h>
#include <math.h>

void leftShift(int bit, int shift);
void showBits(int inttobit);

int main(void)
{
  int option;
  int value1=0,value2=0;

  while (option != 7)
    {
      printf("\n");
      printf("                Main Menu    \n ");
      printf("               ---------    \n");
      printf("1. Perform Left Bit Shift Operation (one value)\n");
      printf("2. Perform Right Bit Shift Operation (one value)\n");
      printf("3. Perform Binary AND Operation (two values)\n");
      printf("4. Perform Binary OR Operation (two values)\n");
      printf("5. Perform Binary One's Complement (~) Operation (one value)\n");
      printf("6. Perform Binary XOR Operation (two values)\n");
      printf("7. Quit \n");

      scanf("%d",&option);

      if (option == 1)
        {
          scanf("Enter a base 10 Integer: %d ", &value1);
          printf("\n");
          scanf("Enter number of places to shift bit: %d", &value2);
          printf("\n");
          leftShift(value1, value2);
        }
      else if (option == 7)
        {
        break; /* break out of loop */
        }
      else if (option < 0 || option > 9)
        {
          printf("Not an option... out of bounds\n");
        }
        }
      return(0);
}

void showBits(int inttobit)
{
  printf("\n");
  printf("Integer entered: %d\n", inttobit);
  printf("\n");
}
void leftShift(int bit, int shift)
{
  printf("Entered Integer: %d\n", bit);
  printf("Left Shifted: %d\n", shift);
}

任何帮助或方向都非常感谢!

共有1个答案

袁奇文
2023-03-14
scanf("Enter a base 10 Integer: %d ", &value1);

这将尝试扫描整个字符串,包括Enter 文本。您需要printf提示和scanf输入,类似于:

printf ("Enter a base 10 Integer: ");
scanf ("%d ", &value1);

但请记住,这仍然不是非常健壮的输入代码。对于示例代码来说这很好,但对于生产代码来说,您可能需要一些更好的东西。

 类似资料:
  • 本文向大家介绍JavaScript简单拖拽效果(1),包括了JavaScript简单拖拽效果(1)的使用技巧和注意事项,需要的朋友参考一下 拖拽在前端开发中是很常见的功能,也是基本功之一,本文是不限制范围的拖拽也就是最简单的拖拽,鼠标按下对象,拖拽,松开停止! 1,onmousedown事件 2,onmousemove事件 3,onmouseup事件 因为在按下时拖动,所以onmousemove事

  • 本文向大家介绍JS实现的简单拖拽功能示例,包括了JS实现的简单拖拽功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现的简单拖拽功能。分享给大家供大家参考,具体如下: 1、实例代码: 2、运行效果图如下: 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript

  • pre { white-space: pre-wrap; } 菜单(Menu)定义在一些 DIV 标记中,如下所示:     <div id="mm">         <div onclick="javascript:alert('new')">New</div>         <div>             <span>Open</span>             <div>    

  • 本文向大家介绍简单实现ajax拖拽上传文件,包括了简单实现ajax拖拽上传文件的使用技巧和注意事项,需要的朋友参考一下 AJAX拖拽上传功能实现,供大家参考,具体内容如下 //server.php 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍vue实现拖拽的简单案例 不超出可视区域,包括了vue实现拖拽的简单案例 不超出可视区域的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了vue实现拖拽x效果的具体代码,供大家参考,具体内容如下 实现拖拽之前,先了解几个小常识: 这两种获取鼠标坐标的方法,区别在于基于的对象不同: pageX和pageY获取的是鼠标指针距离文档(HTML)的左上角距离,不会随着滚动条滚动而

  • 本文向大家介绍JS实现网站菜单拖拽移位效果的方法,包括了JS实现网站菜单拖拽移位效果的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现网站菜单拖拽移位效果的方法。分享给大家供大家参考。具体如下: 这是一个基于JavaScript的层手动实例,让网站的菜单可以拖拽移位,记得土豆网的“豆单”有这种功能。本效果还尚未彻底完成,部分地方因没有写入对应内容,因此JS可能会提示有错误。 运