fgets阻塞 stdin 退出_來自stdin問題的fgets[c]

我試過你的代碼,但無法重現問題。以下代碼的工作方式正是您所期望的,它會提示您輸入名稱,等待您鍵入名稱,然后提示您輸入地址,等等。

我想知道你是否不需要在提示輸入更多信息之前閱讀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的整個問題變得毫無意義。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395260.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395260.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395260.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2016.08.19

轉載于:https://www.cnblogs.com/hiramlee0534/p/5789453.html

服務器上運行arp,服務器ARP病毒的特征及防護說明

服務器ARP病毒的特征及防護說明更新時間:2008年01月29日 15:50:33 作者:服務器ARP病毒的特征及防護說明近期有些用戶反映服務器上所有網站被插入了病毒代碼,但是這些病毒代碼在服務器的源文件上并不能找到,因此,網管想清理病毒也無從下手,這是什么原因…

使用React Native進行氣泡動畫

by Narendra N Shetty由納倫德拉N謝蒂(Narendra N Shetty) 使用React Native進行氣泡動畫 (Bubble animation with React Native) 使用Animated和PanResponder構建React Native應用程序時獲得的經驗教訓 (Lessons learned while building a React Native App using Animated a…

Machine Learning from Start to Finish with Scikit-Learn

2019獨角獸企業重金招聘Python工程師標準>>> Machine Learning from Start to Finish with Scikit-Learn This notebook covers the basic Machine Learning process in Python step-by-step. Go from raw data to at least 78% accuracy on the Titanic Survivors …

Excel 宏編碼實現,指定列的字符串截取

1、打開Excel憑證,啟用宏,ALTF11 或 菜單“視圖”-"宏-查看宏" Sub 分割字符串1() Dim i As Integer Dim b() As String Dim length 用length表示數組的長度 Dim sublength Dim bb() As String 篩選日期 2 點 For i 2 To 20000 b() Split(Ce…

mysql for update 鎖_MySql FOR UPDATE 鎖的一點問題……

問題描述假設一個情況,這里只是假設,真實的情況可能不會這樣設計,但是假如真的發生了....鐵老大有一張這樣的ticket表,用來存放北京到上海的票。iduidstart_addrend_addrbook_time11300009860上海北京1386666032120上海北京30上海…

服務器機房新風系統,某機房新風系統設計方案參考

《某機房新風系統設計方案參考》由會員分享,可在線閱讀,更多相關《某機房新風系統設計方案參考(3頁珍藏版)》請在人人文庫網上搜索。1、某機房新風系統設計方案參考根據以上要求并結合中華人民共和國電子計算機機房的設計規范,為保證機房正壓…

css 畫三角形

CSS三角形繪制方法#triangle-up {width: 0;height: 0;border-left: 50px solid transparent;border-right: 50px solid transparent;border-bottom: 100px solid red;}#triangle-down {width: 0;height: 0;border-left: 50px solid transparent;border-right: 50px solid trans…

面試官面試前端_如何面試面試官

面試官面試前端by Aline Lerner通過艾琳勒納(Aline Lerner) 如何面試面試官 (How to interview your interviewers) For the last few semesters, I’ve had the distinct pleasure of guest-lecturing MIT’s required technical communication class for computer science m…

shell 字符串分割

語法1: substring${string:start:len} string的下標從0開始,以start可是,截取len個字符,并賦值于substring 1 #!/bin/bash 2 #substr${string:start:len} 3 str"123456789" 4 substr${str:3:3} 5 echo $substr 6 7 輸出&#xff1…

方格取數(網絡流)

題目鏈接:ヾ(≧?≦*)ゝ 大致題意:給你一個\(n*m\)的矩陣,可以取任意多個數,但若你取了一個數,那么這個數上下左右的數你就都不能取,問能取到的最大值是多少。 Solution: 首先,我們可以把矩陣上…

mysql創建的數據庫都在哪里看_mysql 怎么查看創建的數據庫和表

1、 //看當前使用的是哪個數據庫 ,如果你還沒選擇任何數據庫,結果是NULL。mysql>select database(); ------------ | DATABASE() | ------------ | menagerie | ------------2、//查看有哪些數據庫 mysql> show databases;--------------------| Database …

wordpress 基礎文件

需要用到的PHP基礎文件有&#xff1a; 404.php404模板 rtl.css 如果網站的閱讀方向是自右向左的&#xff0c;會被自動包含進來comments.php 評論模板single.php文章模板。顯示單獨的一篇文章時被調用&#xff0c;如果模板不存在會使用 index.phpsingle-<post-type>.php自…

ajax請求 apend,jsp如何獲取ajax append的數據?

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓我在網上下了個上傳圖片的js&#xff0c;我想上傳圖片的時候還提交一些參數&#xff0c;但是后臺用request.getParameter("th");獲取出來是nullfunction uploadSubmitHandler () {if (state.fileBatch.length ! 0) {var …

linux 機器格式化_為什么機器人應該為我們格式化代碼

linux 機器格式化by Artem Sapegin通過Artem Sapegin 為什么機器人應該為我們格式化代碼 (Why robots should format our code for us) I used to think that a personal code style is a good thing for a programmer. It shows you are a mature developer who knows what g…

Pytest高級進階之Fixture

From: https://www.jianshu.com/p/54b0f4016300 一. fixture介紹 fixture是pytest的一個閃光點&#xff0c;pytest要精通怎么能不學習fixture呢&#xff1f;跟著我一起深入學習fixture吧。其實unittest和nose都支持fixture&#xff0c;但是pytest做得更炫。 fixture是pytest特有…

mysql 慢日志報警_一則MySQL慢日志監控誤報的問題分析

之前因為各種原因&#xff0c;有些報警沒有引起重視&#xff0c;最近放假馬上排除了一些潛在的人為原因&#xff0c;發現數據庫的慢日志報警有些奇怪&#xff0c;主要表現是慢日志報警不屬實&#xff0c;收到報警的即時通信提醒后&#xff0c;隔一會去數據庫里面去排查&#xf…

用css實現自定義虛線邊框

開發產品功能的時候ui往往會給出虛線邊框的效果圖&#xff0c;于是乎&#xff0c;我們往往第一時間想到的是用css里的border&#xff0c;可是border里一般就提供兩種效果&#xff0c;dashed或者dotted&#xff0c;ui這時就不滿意了&#xff0c;說虛線太密了。廢話不多說&#x…

無限復活服務器,絕地求生無限復活模式怎么玩 無限復活新手教程

相信不少的絕地求生玩家們最近都聽說了其無限復活模式吧?因此肯定想要知道這種模式究竟該怎么玩&#xff0c;所以下面就來為各位帶來此玩法的攻略相關&#xff0c;希望各位在看了如下的內容之后恩呢狗狗了解到新手教程攻略一覽。“War”模式的設定以及玩法規則如下&#xff1a…

lua math.random()

math.random([n [,m]]) 用法&#xff1a;1.無參調用&#xff0c;產生[0, 1)之間的浮點隨機數。 2.一個參數n&#xff0c;產生[1, n]之間的整數。 3.兩個參數&#xff0c;產生[n, m]之間的整數。 math.randomseed(n) 用法&#xff1a;接收一個整數n作為隨即序列的種子。 例&…