getch()写入和scanf问题

C语言输入字符和字符串 在C语言中,有多个函数可以从键盘获得用户输入: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。 getchar()、getche()、getch():这三个函数都用于输入单个字符。 gets():获取一行数据,并作为字符串处理。 scanf()函数输入 利用格式控制符来输入字符和字符串,单个字符—%c,字符串—%s #include <stdio.h> int main() { char letter; char url[30]; 阅读详情
 

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

void main()
{
 int button,password,password1,i,Cmoney,a,b;
 a=0;
 button=0;
 password=123456;
 password1=123456;
 i=1;

 do
 {
  system("cls");
  printf("***************************\n");
  printf("*   please select key:    *\n");
  printf("*   1.password            *\n");
  printf("*   2.get money           *\n");
  printf("*   3.Return              *\n");
  printf("***************************\n");
  printf("   press 1-3 to select:\n");
  scanf("%d",&button);
 }
 while(button!=1 && button!=2 && button!=3);

 switch(button)
 {
  case 1:
   printf("please input password:\n");
   scanf("%d",password);
   if(password1!=password)
   {
    if(i>3)
    {
     printf("input error,please press any key to exit!\n");
     getch();
     exit(0);
    }
    else
    {
     printf("input error,please input again!\n");
    }
   }

   else
   {
    printf("input right!,continue do!");
   }
  case 2:
   do
   {
    system("cls");
    if(password1!=password)
    {
     printf("please press any key to continue!\n");
     getch();
     break;
    }
    else
    {
     printf("******************************\n");
     printf("*      please select         *\n");
     printf("*      1.$ 100               *\n");
     printf("*      2.$ 200               *\n");
     printf("*      3.$ 300               *\n");
     printf("*      4.input other number which you want\n");
     printf("*      5.Return              *\n");
     Cmoney=getch();
    }
   }
   while (Cmoney!=1 && Cmoney!=2 && Cmoney!=3  && Cmoney!=4 && Cmoney!=5);

   switch(Cmoney)
   {
   case 1:
    system("cls");
    a=a-100;
    printf("*****************************************\n");
    printf("* Your Credit money is $ 100,Thank You! *\n");
    printf("*         The balance is %d.            *\n",a);
    printf("*         Press any key to return       *\n");
    printf("*****************************************\n");
    getch();
    break;
   case 2:
    system("cls");
    a=a-200;
    printf("*****************************************\n");
    printf("* Your Credit money is $ 200,Thank You! *\n");
    printf("*         The balance is %d.            *\n",a);
    printf("*         Press any key to return       *\n");
    printf("*****************************************\n");
    getch();
    break;
   case 3:
    system("cls");
    a=a-300;
    printf("*****************************************\n");
    printf("* Your Credit money is $ 300,Thank You! *\n");
    printf("*         The balance is %d.            *\n",a);
    printf("*         Press any key to return       *\n");
    printf("*****************************************\n");
    getch();
    break;
   case 4:
    system("cls");
    printf("please input the money which you want to take.\n");
    scanf("%d",&b);
    a=a-b;
    printf("*****************************************\n");
    printf("* Your Credit money is $ b,Thank You! *\n");
    printf("*         The balance is %d.            *\n",a);
    printf("*         Press any key to return       *\n");
    printf("*****************************************\n");
    getch();
    break;
   case 5:
    break;
   }
  case 3:
   printf("****************************************\n");
   printf("*     Thank you for your using!        *\n");
   printf("*            GOODBYE!                  *\n");
   printf("****************************************\n");
   getch();
   break;
 }
}

每次进入一个页面输入按键指令时,这里的getch不能成功输入。但是我改成scanf可以合法输入并进入下一步菜单。如果我只用getch输入,应该如何修改。

面试重点-getchar,getch,scanf,gets,getche一群纠结的兄弟 今天偶然间碰到这么一个程序,小样,还挺有意思,不多说了,直接看吧!#include #include #include int main(){ struct node{ char name[10]; int score; }; struct node student; FILE *fptr; if((fptr = fopen("student.txt", "wb")) = 阅读详情

相关推荐

光耦合MOSFET(Optocoupled MOSFET,简称OCMOS)

光耦合MOSFET(Optocoupled MOSFET,简称OCMOS)是一种将光电耦合器和MOSFET结合在一起的器件,用于实现电气隔离和信号传输。选择合适的光耦合MOSFET时,还需要考虑具体应用的需求和环境条件,以确保最佳性能和可靠性。- 最大输出电流和电压:确保所选型号能够满足电路的最大电流和电压需求。- 最大输出电流和电压:确保所选型号能够满足电路的最大电流和电压需求。- 隔离电压:根据应用环境的电气隔离要求选择合适的隔离电压。- 隔离电压:根据应用环境的电气隔离要求选择合适的隔离电压。

eydj2008的专栏 1725

【C语言】输入函数们的盘点:scanf、getchar、getch、getche、gets

文章目录C 库函数 - scanf():C 库函数 - getchar():getch:getche:getchar(),getch(),getche()比较:gets:参考链接: C 库函数 - scanf(): 功能: scanf函数从标准输入 stdin 读取格式化输入。 和getchar类似,首先从stdin缓冲区读取字符,如果缓冲区有符合格式要求的数据,及获取数据,返回给程序,指针指向下一个数据,函数结束;如果缓冲区没有符合要求的数据,则等待从键盘输入数据,并且必须以回车键结束,输入的数据存入s

weixin_44211968的博客 2212

Chroma向量数据库实战:用Python快速搭建本地知识库(附中文诗词检索案例)

本文详细介绍了如何使用Chroma向量数据库和Python快速搭建本地知识库,并附有中文诗词检索的实战案例。通过解析核心概念、数据准备、向量化及智能检索实现,展示了Chroma在处理中文语义搜索时的轻量级与易用性,为开发者构建AI应用原型提供了实用指南。

weixin_29221753的博客 480

C语言getchar()、getch()、scanf()对比(附C语言代码)

C语言getchar()、getch()、scanf()对比(附C语言代码) 由于最近收到刚入门c语言的小朋友关于 “使用scanf()语句接收char类型数据时出现了一系列迷惑输出” 的提问, 故重新整理了一下C语言中关于getchar()、getch()、scanf()三个函数的相关知识点. 文章目录C语言getchar()、getch()、scanf()对比(附C语言代码)getchar()getch()scanf()小朋友的问题 下面从函数的生命周期理解三个函数 getchar() 当函数开始

图灵的猫的博客 642

在 CentOS7 下安装 Cadence IC验证平台 INCISIVE152

前言 本文所使用的软件 虚拟机软件:VMware Workstation 15 PRO 如何安装? 操作系统:CentOS-7, CentOS-7-x86_64-DVD-1810.iso 如何安装? 简介 INCISIVE Incisive是nc_verilog, nc_sim, nc_lauch,以及ABV,TBV的集合,用于仿真和验证。 InstallScape InstallSc...

沈醉不知的博客 2万+

CentOS 9 Stream 上安装 MySQL 8.0+

根据提示进行设置,包括设置新的 root 密码、禁用远程 root 登录等。MySQL 在首次安装时会生成一个临时密码。这样就完成了 MySQL 8.0.37 的安装。这将安装最新的 MySQL 8.0 版本。

小强不是坑 1679

C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数(原创)

C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数----------------------------------------------------| 问题描述一:(分析scanf()和getchar()读取字符)   |----------------------------------------------------    scanf(), ge

lewsn2008的博客 7025

手把手教你学Simulink——基于全桥 LLC 谐振变换器的双向 DC-DC 建模与仿真

本文详细介绍了基于Simulink的双向全桥LLC谐振变换器建模与仿真方法。内容涵盖:1)LLC谐振变换器背景与双向化挑战;2)系统架构设计及关键数学推导(FHA增益分析、双向控制逻辑);3)Simulink建模步骤(功率级搭建、PWM生成、同步整流实现);4)仿真结果分析(正向/反向工作验证、ZVS特性);5)工程实践建议(增益微调、代码生成与HIL测试)。通过手把手教学,帮助读者掌握950V↔48V双向LLC变换器的完整设计流程,实现高效率能量双向流动的同时保持软开关特性,适用于储能系统、车载充电等应用

MHD0815的博客 179

C语言getchar()、getch()、scanf()对比(二)

C语言getc(), getchar(), getch(),getche,scanf()

Do 1万+

SerDes系列之FFE均衡技术

FFE的基本结构可以在RX侧或TX侧实现,其基本工作原理相同:它通过从同一信号源应用适当的延迟来产生多径信号,然后对它们进行线性缩放和组合以消除信道ISI。

一只豌豆象的博客 4245

Ubuntu系统等保3级配置核查与加固

虽然这种方法在某些老旧的系统中仍然有效,但现代Linux发行版通常不推荐使用hosts.deny和hosts.allow文件来管理防火墙规则,因为它们的功能已经被更现代的防火墙管理工具(如iptables或firewalld)所取代。如果你想禁止特定的环境变量,可以从这个列表中移除它们,或者如果你想完全阻止所有环境变量的传递,可以将其设置为空。你可以通过ssh-keygen生成密钥对,并将公钥添加到用户的~/.ssh/authorized_keys文件中。修改配置后,需要重启SSH服务以使更改生效。

悦分享 183

详解scanf、gets、getchar和getch 使用及其原理。

字符操作时 scanf、gets、getc、getchar和getch 使用及其原理。 一、说在最前:回车及换行。 概念 在计算机还没有出现之前,有一种叫做电传打字机。在电传打字机打字时,在每行后面加两个表示结束的字符,分别叫做回车和换行。 回车:是告诉打字机把打印头定位在左边界,不卷动滚筒;符号 \r;十六进制 0x0d 换行:是告诉打字机把纸张向下方移动一行,不改变左右位置;符号 \n;十六进...

计量小菜鸡的博客 5577

linux那些事之numa balance

numa balance numa balance是页迁移技术最重要也是最开始使用应用的技术,主要是为解决由于调度器进程在两个node迁移造成访问内存性能问题。 numba balance通过页迁移技术,将不在运行节点的内存迁移到所运行的节点上。对应numa balance要注意几点: 防止进程在两个节点之前来回切换造成频繁进行页迁移(ping pang现场)从而影响性能。numa balance本身就是为了提高性能,不能因为造成频繁页迁移而对性能进行一个反向优化。 多个线程分布在不同线程 访.

weixin_42730667的博客 3908

比较. gets()和scanf(). getchar()和getch()

一、scanf() 所在头文件:stdio.h 语法:scanf("格式控制字符串",变量地址列表); 接受字符串时:scanf("%s",字符数组名或指针); 二、gets() 所在头文件:stdio.h 语法:gets(字符数组名或指针); scanf()和gets()两者在接受字符串时: 1.不同点: scanf不能接受空格、制表符Tab、回车等; 而gets能够接受空格...

lexiaoyao_0000的博客 445

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

3.2、输入:scanf()、getchar()、getche()、getch()

C 语言中有多个函数可以从键盘获得用户输入:

融码一生:专注 Python、C/C++、Linux、机器学习 & 深度学习、NLP、算法领域分享 1153

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

scanf(),gets(),getchar(),getch()几种输入函数的区别

scanf():从键盘读入字符串,以空格,Tab键,回车结束一次赋值,个人觉得的优点是可以一次对多个变量进行赋值,例如:char a[20]; char b[20]; scanf("%s%s",a,b);可以一次对a和b赋值。缺点是如果输入有空格,后面的内容会丢失。 gets():从键盘读入字符串,以回车结束赋值,优点是可以输入空格 getcher():从键盘读入一个字符,一次只能读一个字符,如果...

qq_44823997的博客 707

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

浅谈getch(),getche(),getchar(),gets(),scanf()的区别

getch()和getchar()getchar()是C的标准库函数,包含在头文件中,而getch()和getche()需要的头文件是。conio.h不是C标准库中的头文件。conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作getchar    This is a standard function that gets a character from the stdin.getch    T

wesweeky学习笔记 1万+

VS2013中的getch()和scanf()报错问题

1、warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details. 解决办法: 将getch() 改成 _getch(); 2、scanf不

alvinzxf的博客 1万+

getch(),getche(),getchar(),gets(),scanf()的区别

getch(),getche(),getchar(),gets(),scanf()的区别. getch()和getchar() getchar()是C的标准库函数,包含在头文件中,而getch()和getche()需要的头文件是。conio.h不是C标准库中的头文件。conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和

羽蒙忘渊 760

C getchar()、getch()、scanf()

1.从函数的生命周期理解三个函数 getchar()当函数开始运行的时候,去stdio缓冲区看是否有字符,有则获取一个字符,返回给程序,函数结束。 如果stdin缓冲区为空,则等待从键盘输入数据,同时每输入一个字符都会回显到屏幕上,只有当按下回车键(‘\n’),才将按下回车键之前包括回车键的数据存到stdin缓冲区, 然后getchar()从stdio缓冲区获取第一个字符,并返回给程序,同时缓...

csdn_yaohailong的博客 250

getchar()getch()scanf()EOF—学习总结

大一开学已经有两个月了,我之前从没有想到大学是这么的忙,尤其是这段时间,每天5个小时的睡眠让我不堪重负。 前段时间学习c语言时发现了些问题,总该记录一下: 首先是getchar()函数,记得以前我基本上是用它来做停顿用的,能让exe在windows环境下运行后不直接退出,可下面的代码发现了问题: #include #define N 30 void rd(int i,int k); int

岁月流风、、 1241

c语言的getchar()方法,getch()方法,scanf()函数

首先看一下我遇到的问题: 希望得到的效果: 错误的效果: 为什么ch2值为空??没有让输入ch2? 换了scanf函数也是一样。 原因是因为getchar()这是在键盘缓冲区读取数据不是从键盘(终端)读取的。 当键盘输入a和回车(回车也是字符),会先被写入到键盘缓冲区,然后getchar()方法从缓冲区读取数据,每次只从缓冲区读取一个字符,剩下的会留下来等下一个g...

Ke_dragon的博客 546

【C语言】scanf,getchar,getch函数详解

编译环境:sublime text 3 + cmd运行窗口 一、函数简介 1.输入函数scanf() scanf()函数是printf()函数的逆操作,它可以把输入的字符串转换成整数、浮点数、字符和C的字符串形式。 输入示例: *如果使用scanf()来读取整数、浮点数、字符等基本变量类型的值,请在变量名前加上一个&amp;。 *如果使用scanf()把一个字符串读进一个字...

lemon_cookie的博客 5583

gets、getchar、getch、scanf函数的区别

1、gets函数表示从标准输入输出流stdin读取一整行,以(\n或EOF)为标志位。出错或结束时返回NULL。行末尾的'\n'也会被读取出来,但是不会被写入。gets不检查写入数组的大小。

a904235765的专栏 2791
上一篇: scanf()问题学习
下一篇: 简单数组疑问
fengskill
博客等级 码龄15年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值