国产成人AV一区二区三区在线_国产成人精品无码免费看_国产成人无码无卡在线观看_国产精品成人A区在线观看_国产日韩精品欧美一区_国产亚洲精品自在久久蜜TV_久草热久草热线频97精品_久久久噜噜噜久久中文福利_久久婷婷五月综合色国产免费观看_日日狠狠久久偷偷色综合0,九一桃色在线观看,久久97精品久久久久久久不卡,国产成人精品亚洲精品

C++的gets函數(shù)無法輸入就結(jié)束

訪客2024-11-27 13:08:021

#include<string.h>

#include<iostream>

using namespace std;

char s[100];

int main()

{

int p1,p2,p3;

cin>>p1>>p2>>p3;

gets(s);

}

敲完1 2 1,,把p1,、p2、p3輸入之后回車,,直接結(jié)束程序,。我下面還有個gets(s)呢,,怎么就直接結(jié)束了呢,?

C++的gets函數(shù)無法輸入就結(jié)束

c/c++有輸入緩沖的,你用

cin>>p1>>p2>>p3;

時,后面的回車不會被讀取,會留在輸入緩沖中

你若再用

cin >> s;

是沒有問題的,但你用

gets,getchar()等,它們都只能讀到一個回車

而解決方案有多個,

初級的會在gets加一個

getchar(); //先讀掉一個回車

而中級的可用C的函數(shù),在gets加一個

fflush(stdin); //清除輸入緩沖

而高級的同樣是清除輸入緩沖,只是用C++標(biāo)準(zhǔn)函數(shù)

cin.sync();

當(dāng)然,我從不建議C/C++的輸入函數(shù)混用

改你的gets(s)為

cin >> s;

若要接收空格,可用

cin.get(s,100); //這樣安全又標(biāo)準(zhǔn)

回車符被gets讀入

文章評論