永发信息网

编写的C++程序 结尾加了 cin.get()还是会闪退,求问为什么,并且想知道什么时候加2个或3个cin.get()

答案:4  悬赏:40  手机版
解决时间 2021-02-03 17:06
#include<iostream>
#include <cstdlib>
using namespace std;
int main()
{
char ch;
int count=0;

cin.get(ch);
while(ch!='#')
{
cout<<ch;
count++;
cin.get(ch);
}
cout<<"\n"<<count<<"characters read\n";
cin.clear();
//这里加 cin.get()还是会闪退为什么
return 0;
}
最佳答案
cin.get(ch),每次都有一个读一个字符,进行处理,你最后一个'#'后面实际上传递了一个'#'和一个'\n'到缓冲区,你一个cin.get()只能吸收最后一个'\n',也就是说,你这里再加一个cin.get()就可以了。

一般vc的话,用楼下有人说的那个system("pause");来暂停程序以显示结果。
在codeblocks等编译器是没有这个问题的,它调用完毕后停留在cmd返回结果状态。
全部回答
你好: // basic_istream_getline.cpp // compile with: /ehsc #include using namespace std; int main( ) { char c[10]; cin.getline( &c[0], 5, '2' ); cout << c << endl; } // basic_istream_get.cpp // compile with: /ehsc #include using namespace std; int main( ) { char c[10]; c[0] = cin.get( ); cin.get( c[1] ); cin.get( &c[2],3 ); cin.get( &c[4], 4, '7' ); cout << c << endl; }
把cin.clear();换成system("pause");就够了……
请问你用的是什么编译环境?我用code blocks没有问题.这可能与具体的编译器有关。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
莹莹美甲美睫地址好找么,我有些事要过去
半边莲、半枝莲、蛇舌草齐煮来吃起什么作用
冠石的意思是什么啊?知道的请说下!
众泰汽车乐都直营店怎么去啊,有知道地址的么
下列从左到右的运算中,你认为错误的是A.=B.=
太原富士康到府西街漪汾桥东
柳姓自字辈名字怎么取
蓝拳影子换装改版后怎么 65533
南京审计大学会计学院在哪里
汕尾市防制重大动物疫病指挥部地址在哪,我要
爱美甲地址在什么地方,想过去办事
菌芝的意思是什么啊?知道的请说下!
PA6与PA66一般价位在多少?
红霞综合超市地址有知道的么?有点事想过去
初学者用眼线笔眼线液还是眼线膏
推荐资讯
下列人的各种特征中,不属于相对性状的一组是
诡崛的意思是什么啊?知道的请说下!
我想在北京注册公司,中企开元公司代理注册好
卉汨的意思是什么啊?知道的请说下!
清剔的意思是什么啊?知道的请说下!
施兴发艺地址在什么地方,想过去办事
有没有姐妹的hcg峰值就三到四万的
单机游戏什么最好玩2017手机
DDS33型单相电子式电能表怎么偷电
小林专业发型设计在哪里啊,我有事要去这个地
【deepocean】深海用英文应该是什么到底是dee
繇役的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?