我试过你的代码,但无法重现问题。以下代码的工作方式正是您所期望的,它会提示您输入名称,等待您键入名称,然后提示您输入地址,等等。

我想知道你是否不需要在提示输入更多信息之前阅读stdin并清空它?

typedef struct {

char* name;

char* address;

}employeeRecord;

int readrecord(employeeRecord &record)

{

char name[50];

char address[100];

printf("\nenter the name:");

fgets(name, sizeof(name), stdin);

record.nameLength = strlen(name) + 1;

record.name = malloc(sizeof(char)*record.nameLength);

strcpy(record.name,name);

printf("\nenter the address:");

fgets(address, sizeof(address), stdin);

...

}

顺便说一句,您想在strlen(name)中加1,而不是减去1。或者,如果希望名称存储在记录中而不带终止空值,则需要使用memcpy将字符串复制到记录中,而不是strcpy。

编辑:

我从你的评论中看到

scanf

要读取选择值,这将在输入缓冲区中留下一个,然后由第一个

fgets

打电话。相反,您应该使用fgets读取选择行,然后使用sscanf解析输入中的值。这样地

int choice;

char temp[50];

fgets(temp, sizeof(temp), stdin);

sscanf(temp, "%d", &choice);

这应该会使冲洗stdin的整个问题变得毫无意义。

fgets阻塞 stdin 退出_来自stdin问题的fgets[c]相关推荐

  1. fgets阻塞 stdin 退出_linux fgets 阻塞

    当前位置:我的异常网» 热门搜索 » linux fgets 阻塞 linux fgets 阻塞 www.myexceptions.net  网友分享于:2013-09-23   搜索量:159次 场 ...

  2. qt定时器是阻塞的吗_吊打面试官 | 面试官:TCP真的可靠吗

    点击蓝字关注我哦 以下是本期干货视频视频后还附有文字版本哦 ▼<面试官:TCP真的可靠吗>▼ ps:请在WiFi环境下打开,如果有钱任性请随意 TCP真的可靠吗 面试官经常会问的一个问题是 ...

  3. stdin.php 木马,php STDIN - mickelfeng的个人空间 - OSCHINA - 中文开源技术交流社区

    最近在看perl,觉得perl的标准输入挺好的,就想找找看PHP的,原来PHP也有类似的啊,我真OUT了 while($str = fread(STDIN,1000)){ echo "you ...

  4. c语言中gets与fgets,gets和fgets函数及其区别,C语言gets和fgets函数详解

    每当讨论 gets 函数时,大家不由自主地就会想起 1988 年的"互联网蠕虫",它在 UNIX 操作系统的 finger 后台程序中使用一个 gets 调用作为它的攻击方式之一. ...

  5. gets和fgets函数及其区别,C语言gets和fgets函数详解

    gets和fgets函数及其区别,C语言gets和fgets函数详解 每当讨论 gets 函数时,大家不由自主地就会想起 1988 年的"互联网蠕虫",它在 UNIX 操作系统的 ...

  6. fgets阻塞 stdin 退出_fgets()用法笔记

    为了避免缓冲区溢出,从终端读取输入时应当用fgets()代替gets()函数. 但是这也将带来一个问题,因为fgets()的调用格式是: fgets (buf, MAX, fp) fgets (buf ...

  7. linux密码stdin怎么用,如何使ssh接收来自stdin的密码

    根据这篇文章,您可以执行以下操作: 创建一个使用SSH_ASKPASS打开ssh会话的命令(在man ssh上查找SSH_ASKPASS ) $ cat > ssh_session < e ...

  8. python连续输入直到回车退出_详解Python实现按任意键继续/退出的功能

    前言 要实现该功能,需要的就是暂停程序.等待并捕捉用户的一个键盘输入,然后继续执行.Python 有内建的库能帮我们实现该功能,不过要区别对待 Windows 和 Linux. msvcrt中的 ge ...

  9. python 提示按任意键退出_详解Python实现按任意键继续/退出的功能

    前言 要实现该功能,需要的就是暂停程序.等待并捕捉用户的一个键盘输入,然后继续执行.Python 有内建的库能帮我们实现该功能,不过要区别对待 Windows 和 Linux. msvcrt 中的 g ...

最新文章

  1. JavaScript 学习中的帮助记忆(日积月累)
  2. SGU 185 Two shortest
  3. qt-信号和槽的连接写法
  4. 在vue文件引入echarts_vue文件中使用echarts.js的两种方式
  5. netstat(win)
  6. Ubuntu:查询计算机软硬件信息
  7. 【Head First 设计模式】-简单工厂模式读后总结
  8. 【概率论基础】机器学习领域必知必会的12种概率分布(附Python代码实现)
  9. 被裁员和降薪,你选哪个?
  10. 九度oj 题目1325:Battle Over Cities
  11. 小爱音箱mini系统故障怎么办_Win7系统连接小爱音箱mini的方法【图文】
  12. 【渝粤教育】广东开放大学 插画与漫画 形成性考核 (27)
  13. 鸿蒙系统共享电脑文件,鸿蒙Hi3516通过NFS挂载方式与Windows共享文件
  14. Unity模拟榴弹运动轨迹
  15. MATLAB学习笔记 plotyy双y轴
  16. css加号图标_css样式画加号和减号(+和-)效果
  17. CF Bottles 0-1背包
  18. ArrayList,LinkedList,Vector三者的异同
  19. 优秀网页翻译:高精度 10MHz GPS 驯服钟 (GPSDO) - Part3
  20. python列表前加星号是什么_Python中的星号:用途及使用方法(1)

热门文章

  1. ie8 ajaxSubmit 上传文件提示下载
  2. Nginx平滑升级到最新版本
  3. day01语法python入门_2
  4. vue13过滤器 debounce延迟、limitBy、filterBy、orderBy
  5. Redis 它是什么?它用来做什么?它的优势与短板如何?
  6. Java初级笔记-第五章
  7. 该Tiled地图制作拿到项目~~这是偷懒,为了直接复制后写来
  8. 安装了一次Linux,哈哈
  9. 计算机主板各模块复位,电脑主板复位电路工作原理分析
  10. 高版本(3.9版本)python在anaconda安装opencv库及skimage库(scikit_image库)诸多问题解决办法