精华内容
下载资源
问答
  • 1.从键盘输入字符串,按回车键结束,在第二行显示输入内容。 1.编写源程序 data segment buf db 20 db ? db 20 dup (?) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ah,0Ah ...

    微机原理与接口技术
    一、实验目的及要求
    1.熟练掌握顺序、分支程序的设计方法
    2.熟练掌握程序的编写与调试

    二、实验内容

    1.从键盘输入字符串,按回车键结束,在第二行显示输入内容。

    1.编写源程序
    data segment
    buf db 20
    db ?
    db 20 dup (?)
    data ends
    code segment
    assume cs:code,ds:data
    start:
    mov ax,data
    mov ds,ax
    mov ah,0Ah
    lea dx,buf
    int 21h
    mov dl,0dh
    mov ah,2
    int 21h

    mov dl,0ah
    mov ah,2
    int 21h
    mov cl,buf+1
    lea si,buf+2
    next:
    mov dx,[si]
    mov ah,2
    int 21h
    inc si
    loop next
    mov ah,4ch
    int 21h
    code ends
    end start

    从键盘输入字符串,按回车键结束,在第二行显示输入内容。
    汇编连接
    在这里插入图片描述
    实验结果
    在这里插入图片描述

    展开全文
  • 初学8086,想从键盘输入一个字符,利用21号中断时,AH设为1,然后int 21H,然后我直接输入一个2就下一条指令了,没等我输入回车? 代码如下 lea dx,MES1 ‘;'Input first Number',0AH,0DH,'$' mov ah, 9 ...
  • SecureCRT无法键盘输入,无法回车

    千次阅读 2020-06-18 09:26:55
    会话窗口,右键,“会话选项” “串行”,注意右边的流控全部不要勾选 或者 一般是按到了ctrl+S导致关闭流输入, 解决办法: ctrl+q退出即可。

    会话窗口,右键,“会话选项”
    在这里插入图片描述

    “串行”,注意右边的流控全部不要勾选

    SecureCRT

    或者

    一般是按到了ctrl+S导致关闭流输入,

    解决办法:

    ctrl+q退出即可。

    展开全文
  • 1、如何从键盘输入数字字符?用如getchar()函数时即可,即从键盘输入7,获得即是字符'7'。 2、只有在输入完数据再按回车键后,该行数据才被送入内存上的键盘缓冲区里,形成输入流。 而在输入完数据再按回车键后,...

    1、如何从键盘输入数字字符?用如getchar()函数时即可,即从键盘输入7,获得即是字符'7'。

    2、只有在输入完数据再按回车键后,该行数据才被送入内存上的键盘缓冲区里,形成输入流。

    在输入完数据再按回车键后,该行数据才被送入内存上的键盘缓冲区里这一工作是由键盘驱动程序来完成的,即键盘驱动程序(编程设计该程序时)是以回车键为标志符将暂存在键盘这个输入设备的缓存器(属于键盘这个硬件设备的一部分)里的输入数据送入内存上的键盘缓冲区里,编程设计该程序时文件结束符是作为一个普通字符对待的,未将其作为啥标志符的作用,所以键盘驱动程序遇到文件结束符输入时不会像回车键输入那样发生将暂存在键盘这个输入设备的缓存器(属于键盘这个硬件设备的一部分)里的输入数据送入内存上的键盘缓冲区里的情况。而像

    getchar()函数或是cin的输入符>>等输入函数(在软件层次上相对于键盘驱动程序,是其上层接口函数)开始执行时都是先判断内存上的键盘缓冲区里的数据是否为空,为空的话就处于等待状态,直到有数据来时才开始读取内存上的键盘缓冲区里的数据到相应的变量上。可以参看-控制台和端口 I/O等内容。

    getchar()函数或是cin的输入符>>等输入函数(在软件层次上相对于键盘驱动程序,是其上层接口函数)则是在编程设计该函数时以文件结束符作为将其读取的输入流(缓存)的状态是否置为无效的标志之一。其他无效字符,视具体情况而定,如cin>>var,如果var是char类型的变量,则输入字符k,k不会视为无效字符而让输入流状态置为无效,如果var是int或是float等非字符数据类型的变量,则输入字符k,k会视为无效字符而让输入流状态置为无效。

    附加:

    从键盘输入4个9以内的数字字符

    2014年02月25日 ⁄ 综合⁄ 共 471字 ⁄ 字号 评论关闭

     从键盘输入4个9以内的数字字符,将其转换为4位十进制数后显示出来。

    /*分析:⑴将每个数字字符c变成对应的数字,即将以ASCII码表示的数字字符变成一位十进制数,方法为:c-'0',如c='8'时,c-'0'=8。转换中若遇非'0'~'9'字符则结束转换。
      ⑵将每次变换的一位十进制数,从高位开始,按位加权,变成多位的十进制数,放在变量data中。如输入1,2,3,4,则结果应是按%d格式显示的1234。
      */

    #include "stdafx.h"
    #include"stdio.h"
    int main(int argc, char* argv[])
    {
     char c;
     int i,data=0;
     printf("Input char:");
     for(i=0;i<4;i++)
     {
     c=getchar();//输入一数字字符。
     if(c<'0'||c>'9')//判断输入字符是否在'0'~'9'范围内。
      break;
     data=data*10+c-'0';//计算当前数据值。
     }
     printf("data=%d/n",data);
     return 0;
    }

    参考:http://www.xuebuyuan.com/1854888.html

    =========================================================

    C++中怎样在输入流中区别int类型和字符类型?(进一步的问题,有补充浮点数的情况)

    在实际测试中,使用@whistler 君及@精英王子 君的方法时,的确可以识别字符类型(如a,+等),但若输入浮点数类型(如1.2)仍然会跳出循环进入下一步。而我希望的是除了某几个特定整数(如1,2,3)外其他所有的非法输入都能给出报错结果并且不影响重复输入,如果能对不同的错误(字符,非要求整数,浮点数)提示不同的信息则更佳。请问诸位如何解决浮点数输入时跳出报错循环的情况?另外既然跳出了循环那x的值是几呢(经测试,输入1.2,值为1)?算是强制类型转换吗?
    -----------------------原问题---------------------------------------------------------------------
    有一个位置我需要输入整数,int x;cin>>x,若故意输入一个字符,则此处会无限循环。请问如何在输入为字符时(如a)将其分辨出来以给出错误信息呢?多谢诸位高手。
    -----------------------------------------------------------------------------------------------------
    @whisky 君的方案贴一下,未授权,望谅解。
    int read(){
    char c;
    while( c= getchar(), !isdigit(c) );
    int r= c-'0';
    while( c= getchar(), isdigit(c) ) r= r*10 + c-'0';
    return r;
    }
    这个是我平时写题目用的读入优化能自动判断字符和数字。只不过没有警告功能。要警告的话。。可能是这样的。
    int read(){
    char c;
    while( gets(&c))
    {
    if(!isdigit(c))cout<<"NAN";
    else break;
    }
    int r= c-'0';
    while( c= getchar(), isdigit(c) ) r= r*10 + c-'0';
    return r;
    } 第二个没调过不知道能不能用- -

    7个答案

    精英王子高中退学,独立开发者,独立博客作者,深度 Git...

    2012-06-19 21:09

    #include <iostream>
    using namespace std;
    int main()
    {
    int num;

    cin.clear();//清空上次的错误信息

    cin>>num;//在这里我们期望输入一个数字

    if(cin.good()) //如果成功了
    {
    cout<<"你输入的数字是"<<num<<endl;
    }
    else //如果没成功(输入的不是数字)
    {
    cout<<"输入有误"<<endl;
    cin.ignore();//丢弃缓冲区中错误的输入
    }
    }

    //------------分割线--------------
    #include <iostream>
    using namespace std;
    int main()
    {
    int num;
    //如果我们要用户输入一个数字,可以这么做:

    cout<<"请输入一个数字:";

    while(true) //一直循环
    {
    cin.clear();//清空上次的错误信息

    cin>>num; //从键盘读取输入

    if(cin.good()) //如果成功了
    break; //退出循环
    else
    {
    //下一句是丢弃缓冲区中错误的输入
    //这很重要,否则错误的输入会一直留在缓冲区里面,导致程序死循环
    cin.ignore();

    cout<<"输入有误,请重新输入:";
    }
    }

    //到这里,num里面就是一个有效的数字了
    cout<<"你输入的数字是"<<num<<endl;
    }

    whistler软件工程学生、Python爱好者

    2012-06-19 21:11


    cin>>x自身会返回状态的
    cin.sync()是清空缓冲区
    cin.clear()是清除cin可能的出错状态
    以上代码均在std命名空间里面跑的~

    we_cry空间信息与数字技术专业

    2012-06-19 20:51

    我记的 @精英王子 做过一个关于判断这是不是数字的,具体内容忘记了。。。
    p.s. 这里有一个: http://technet.microsoft.com/zh-cn/library/078sfkak.aspx

    参考:

    http://www.guokr.com/question/237697/

    =======================================================================

    控制台和端口 I/O

    Visual Studio 2013

    这些例程读写在控制台上或指定端口。 控制台 I/O 例程与流 I/O 或底层 I/O 库类型程序兼容。在执行 I/O之前,不必打开控制台或端口或关闭,因此此类别中打开或关闭的例程。 在 Windows 操作系统中,这些函数的输出始终处理到控制台,不能重定向。

    控制台和端口 I/O例程。

    例程

    使用

    _cgets, _cgetws,_cgets_s、_cgetws_s

    从控制台读取字符串

    _cprintf,_cwprintf_cprintf_s、_cprintf_s_l、_cwprintf_s、_cwprintf_s_l

    将格式化的数据写入控制台。

    _cputs

    把字符串写入控制台

    _cscanf,_cwscanf_cscanf_s、_cscanf_s_l、_cwscanf_s、_cwscanf_s_l

    从控制台读取格式化的数据

    _getch、_getwch

    从控制台读取字符

    _getche、_getwche

    从控制台读取字符以及回显它

    _inp

    从指定的I/O端口读取一个字节

    _inpd

    从指定 I/O 端口读取双字

    _inpw

    读取指定 I/O 端口 2 字节的单词

    _kbhit

    在控制台检查键击;在尝试从控制台读取使用

    _outp

    写入字节到指定 I/O 端口

    _outpd

    对指定的 I/O 端口的写双字

    _outpw

    对指定的 I/O 端口的写字节

    _putch、_putwch

    向控制台写入字符

    _ungetch,_ungetwch

    “Unget”是从控制台读取的最后一个字符,所以它是下一个要被读取的字符。

    https://technet.microsoft.com/zh-cn/library/7x2hy4cx.aspx

    参考:

    如何从键盘输入字符型的数字 谷歌

    展开全文
  • 从键盘输入一个以回车结束的十进制数字串(不超过20个)。 要求: (1) 按ASCII码值的降序显示这个数字串中ASCII码值最大和最小的两个数字。 (2) 以十进制形式显示数字串中所有数字的和。 (3) 以十进制形式显示...

    从键盘输入一个以回车结束的十进制数字串(不超过20个)。
    要求:
    (1) 按ASCII码值的降序显示这个数字串中ASCII码值最大和最小的两个数字。
    (2) 以十进制形式显示数字串中所有数字的和。
    (3) 以十进制形式显示数字串中最大数与最小数的乘积。
    (4) 对数字串进行处理,使每个字符在字符串中只出现一次。
    (5) 数据的输入和结果的输出都要有必要的提示,且提示独占一行。
    (6) 要使用到子程序。

    data segment
      str db 30,?,30 dup(?)
      str2 db 10 dup(0)
      m1 db 0ah,0ah,'input:',0ah,0dh,'$'
      m2 db 0ah,0ah,'max and min',0ah,0dh,'$'
      m3 db 0ah,0dh,'sum:',0ah,0dh,'$'
      m4 db 0ah,0dh,'mul:',0ah,0dh,'$'
      m5 db 0ah,0dh,'str:',0ah,0dh,'$'
      m6 db 0ah,0dh,'max:',0ah,0dh,'$'
      m7 db 0ah,0dh,'min:',0ah,0dh,'$'
      max db '0';最大值的比较值
      min db '9';最小值的比较值
    data ends
    stack segment 
      dw 10 dup(10)
    stack ends
    code segment
    assume cs:code,ds:data,es:data
    main proc far
    start:
      mov ax,data
      mov ds,ax
      mov es,ax
      call input
      call output1
      call output2
      call output3
      call output4
      mov ax,4c00h
      int 21h
    main endp
    
    input proc near ;输入子程序
      lea dx,m1
      mov ah,09h 
      int 21h
    
      lea dx,str
      mov ah,0ah
      int 21h
      ret
    
    output1 proc near;输出子程序1 最大值和最小值
      lea dx,m2
      mov ah,09h
      int 21h
      lea si,str+2
      mov cl,str+1
      mov ch,0
      cld
    l4:
      lodsb
      cmp al,max;进行比较求最大值
      ja l1
      cmp al,min;进行比较求最小值
      jb l2
      jmp l3
    l1:
      mov max,al
      cmp al,min;防止出现2345升序的情况无法求最小值
      jb l2
      jmp l3
    l2:
      mov min,al
    l3:  
      loop l4
      lea dx,m6
      mov ah,09h 
      int 21h 
    
      mov dl,max;输出最大值
      mov ah,02h
      int 21h
    
      lea dx,m7
      mov ah,09h 
      int 21h 
        
      mov dl,min;输出最小值
      mov ah,02h
      int 21h
      ret
    
    output2 proc near;输出子程序2 所有数字的和 
      lea dx,m3
      mov ah,09h
      int 21h
      lea si,str+2
      mov cl,str+1
      mov ch,0
      mov bl,0
      mov dl,10
      cld
    t1:
      lodsb
      add bl,al;求所有数字的和
      sub bl,30h
      loop t1
      mov cl,0
      mov al,bl
    t2:
      mov ah,0
      div dl
      push ax;将余数压栈,方便输出
      add cl,1
      cmp al,0
      jnz t2
    t3:
      pop ax;将余数出栈
      mov dl,ah
      add dl,30h
      mov ah,02h
      int 21h
      loop t3
      ret
    
    output3 proc near;输出子程序3 最大值与最小值相乘
      lea dx,m4
      mov ah,09h
      int 21h
    
      lea si,str+2
      mov cl,str+1
      mov ch,0
      mov bl,0
      cld
    n4:
      lodsb
      cmp al,max
      ja n1
      cmp al,min
      jb n2
      jmp n3
    n1:
      mov max,al
      cmp al,min
      jb n2
      jmp n3
    n2:
      mov min,al
    n3:
      loop n4
      mov al,max
      mov bl,min
      sub al,30h
      sub bl,30h
      mul bl;最大值与最小值相乘
    
      mov dl,10
      div dl;10,将两位数分开
      mov bh,ah
      mov dl,al;输出十位
      add dl,30h
      mov ah,02h
      int 21h
    
      mov dl,bh;输出个位
      add dl,30h
      mov ah,02h
      int 21h
      ret
    output4 proc near;输出子程序4 对数字串进行处理使每个字符只出现一次
      lea dx,m5
      mov ah,09h
      int 21h
      lea si,str+2
      mov cl,str+1
      mov ch,0
    p4:
      lodsb
      mov ah,0
      sub al,30h
      mov bx,ax
      add str2[bx],1;遇见一个数字,该数字对应的数组元素加一
      cmp str2[bx],1; 不是第一个遇见的数字不进行输出
      ja pe
      mov ah,02h
      mov dl,al
      add dl,30h
      int 21h
    pe:
      loop p4
      ret
    
    code ends
    end start
    
    
    展开全文
  • Python从键盘输入多行文本数据的方法

    万次阅读 多人点赞 2019-01-16 18:37:16
    Python中的Input()函数在输入时,遇到回车符,那么一次输入就结束了。这不能满足输入多行文本并且行数也不确定的情形,当然输入空行也是允许的。 方法1:利用异常处理机制实现 lines=[] while True: try: lines...
  • python 不用按回车获取键盘输入

    千次阅读 2020-04-23 13:10:58
    class _Getch: """Gets a single character from standard input. Does not echo to the screen.""" def __init__(self): try: self.impl = _GetchWindows() except ImportEr...
  • $('#id').textbox('textbox').keydown(function (e) {  if (e.keyCode == 13) {  alert('enter');  }  });   ...
  • input输入时软键盘回车显示搜索

    千次阅读 2016-10-17 21:39:17
    很多时候我们会看到输入法里面回车是搜索等字眼,今天我们就来实现这个效果 原本的效果: 只需要以上几行代码即可实现,不信?试试看吧 实现效果:
  • 从键盘输入一个单个字符,显示该字符的ASCII码,回车键退出循环,终止程序 codesegment  assume cs:code  start:  mov ah,01H  int 21H  mov bh,al ;将输入的字符的ascii 放到bh中    mov cx,...
  • 编一个程序,实现从键盘输入一个长度不超过 300 个字符的串(以回车键作为输入结束),然后在下一行以倒序输出所输入的字符。 DATA SEGMENT STRING DB 300 DUP(?) DATA ENDS STACK SEGMENT STACK DW 10 DUP(?) ...
  • 程序是人机交互的媒介,有输出必然也有输入,第三章我们讲解了如何将数据输出到显示器上,本章我们开始讲解如何从键盘输入数据。在C语言中,有多个函数可以键盘获得用户输入: scanf():和 printf() 类似,scanf...
  • C语言从键盘输入数据

    万次阅读 多人点赞 2016-05-09 23:14:57
    在C语言中,有多个函数可以从键盘获得用户输入: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。getchar()、getche()、getch():这三个函数都用于输入单个字符。gets():获取一行数据,并作为字符...
  • Centos7下键盘无法输入字母数字 回车退格都正常 是怎么回事 请教大神
  • Notes(2):键盘输入回车的一个小讨论

    千次阅读 2007-09-21 16:11:00
    Note2:键盘输入回车的一个小讨论。 代码如下:public class Test { public static void main(String args[]) throws IOException{ char s[]=new char[20]; System.out.println("Input:
  • 今天在做条码枪扫描商品条码来选择商品时,发现有一个矛盾:条码枪其实是模拟键盘事件的:先模拟敲击键盘输入它所扫描到的条码,在输入完毕后,再模拟敲击键盘回车事件。而为了提高功能的易用性,页面本身...
  • 1. 从键盘输入 1.最简单的方式,while(cin&gt;&gt;a){…},当想结束时只需 换行+输入Ctrl+Z+回车,此时cin&gt;&gt;a的返回值为false。 例1.初始化字符数组 #include&lt;iostream&gt; ...
  • c语言从键盘输入字符串

    万次阅读 2018-10-21 15:15:52
    #include<stdio.h> #include<...// 输入三个字符:每输入一个字符就要用空格或回车间隔,结束时输入回车 int main(){ char b[4]; for(int i = 0;i < 3;i++) { scanf("%c",&am...
  • C语言中从键盘输入字符串时的一些问题

    万次阅读 多人点赞 2019-05-17 20:52:10
    C语言中从键盘输入字符串时的一些问题 1.scanf() scanf()在输入字符串时有很大的弊端, 例如: 1). scanf()在键盘读入字符时并不会根据所定义的字符数组的大小来控制读入多少个 , 而是scanf( ) 中传入的地址开始...
  • android EditText控键在调用软键盘的时候功能实现: 1、Editext 实现绑定输入法回车键代码实现  password.setOnEditorActionListener(new EditText.OnEditorActionListener() { @Override public boolean ...
  • 编写程序统计从键盘输入的一行文本中各个字母的个数。 输入以回车键结束。 不区分大小写,大写字母与相应的小写字母按照同一个字母看待。 要求输出按照各个字母出现的个数大到小进行排序,出现的个数相同的,按照...
  • 从键盘输入一系列字符(以回车符结束,字符的个数不超过 200 个),统计输入字符串中数字与非数字字符的个数,并将计数结果输出。 DATA SEGMENT BUFF DB 255,?,255 DUP('$') NUM DB ? ;字符串中数字个数 OTHER DB...
  • C++从键盘输入的方法

    千次阅读 2020-09-10 21:50:35
    C++最基本的常用的输入方式(包含头文件#include ) 注意:不能接受空格和回车 int main() ...scanf函数一般格式为scanf("%s",st),但scanf默认回车和空格是输入不同组之间的间隔和结束符号,所以输入带空格
  • 从键盘输入一系列字符(以回车键结束),并按字母、数字及其它;字符分类统计,最后显示这三类的统计结果DATA SEGMENTBUFFER DB 128,?,128 DUP(0)NUM DW 0WORDS DW 0OTHER DW 0CRLF DB 0AH,0DH,'$'DATA ENDSSTACK ...
  • 1 代码如下 #include<iostream> //#include<conio.h>//调用函数_getch() using namespace std;...//输入一组整数,个数未知小于9999 for (int i = 0; i < 40; i++) { cin >> a...
  • 从键盘输入1个数(不大于5位,以回车键结束),判断其奇偶性,如果是奇数,屏幕上显示"It is odd",否则显示"It is even"。 注:程序仅供大家交流参考,请勿照搬照抄哈。 data segment string0 db "Input a ...
  • java 怎么在控制台就可以监听键盘输入(不用敲回车),比如连续输入三个a,系统提示停止输入 http://www.tuxi.com.cn/viewb-30830-308301630.html
  • c++输入读入回车

    千次阅读 2019-03-08 00:16:25
    c++用cin.getline()并指定EOF结束符可以读入回车换行 #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;bits/stdc++.h&gt; using namespace std; bool check(char c) { ...
  • 今天写程序用到了fgets函数,想直接从键盘输入数据到数组,前面使用了scanf输入int类型的数字,没想到执行到fgets直接不等我输入数据就跳过了,在网上查了一下,原来是stdin缓存没有清除干净的缘故: C语言里的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,018
精华内容 44,807
关键字:

从键盘输入01回车