亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果只用一個 就 無法輸入, 為什么? 請大家幫忙,謝謝!

如果只用一個 就 無法輸入, 為什么? 請大家幫忙,謝謝!

哈士奇WWW 2022-11-04 18:14:42
printf("\ninput No. : "); // " 輸入號碼 "scanf("%d", & num[i]); // 從鍵盤輸入 數組 num[] 的 1 個元素 ( 即 職工的 職工號 )printf("input name: "); // " 輸入姓名 "getchar(); // getchar() 函數: 輸入一個字符gets(name[i]); // gets() 函數: 從終端輸入一個字符串到字符數組這段代碼是 先輸入一個號碼: scanf( ), 接著輸入 姓名如: Wang, 但必須先用getchar( )函數再用 gets( ) 函數才能正常輸入 姓名
查看完整描述

3 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

這個是因為輸入緩沖區在輸入完職工號后要求回車會產生一個換行符('\n'),在對字符或字符串進行輸入時候(例如scanf("%c"),gets()...)會把這個換行符當作有效字符讀入,所以造成還沒輸入姓名就跳過gets(name[i])而執行其它語句.getchar()的目的將多余的換行符吸收,無其它意義
或者將getchar()換成fflush(stdin)可以達到相同目的

查看完整回答
反對 回復 2022-11-08
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

1、getline() // 接受一個字符串,可以接收空格并輸出,需包含“#include”
#include
#include
using namespace std;
main ()
{
string str;
getline(cin,str);
cout<}
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkl jfksldfj jklsjfl
輸出:jkl jfksldfj jklsjfl
和cin.getline()類似,但是cin.getline()屬于istream流,而getline()屬于string流,是不一樣的兩個函數
2、gets() // 接受一個字符串,可以接收空格并輸出,需包含“#include”
#include
#include
using namespace std;
main ()
{
char m[20];
gets(m); //不能寫成m=gets();
cout<}
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkl jkl jkl
輸出:jkl jkl jkl


查看完整回答
反對 回復 2022-11-08
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

輸入num后,有個回車
getchar是過濾掉回車

查看完整回答
反對 回復 2022-11-08
  • 3 回答
  • 0 關注
  • 170 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號