C++中怎么获取空格?

angelcm51 2008-03-04 12:59:18
怎样才能获取到空格?m无法显示出来!
#include<iostream>
using namespace std;
int main()
{ char ch=0;
int n=0,m=0,j=0;
cout<<"请输入任意字符:"<<endl;
do{cin>>ch;
if(ch!='#')
{j++;
if(ch=='\0')
++m;
else
++n;}
else
break;
}while(true);
cout<<"#号前的空格有"<<m<<"个"<<endl;
cout<<"#号前的非空格字符有"<<n<<"个"<<endl;
cout<<"#号前的字符有"<<j<<"个"<<endl;
return 0;
}
...全文
647 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ocean1004 2008-03-04
  • 打赏
  • 举报
回复
3,4,5楼,你们下次把代码写出来的时候能不能把你们改在哪里写一下,这样一目了然~~~~
要不找起来挺麻烦~~~~~~~~~
angelcm51 2008-03-04
  • 打赏
  • 举报
回复
system("pause");
这个蛮有趣的它的作用是什么
输出了中文的...to be continue
angelcm51 2008-03-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Chappell 的回复:]
C/C++ code
必须清空缓冲区再取数据:fflush(stdin);
[/Quote]

不是很懂是甚么意思~不过加了这个以后就不能正常的输出结果了!
abupie 2008-03-04
  • 打赏
  • 举报
回复
2个问题:
if(ch=='\0')应该是'\20'(表示空格)
使用ci>>这种写法不能接收空格
  • 打赏
  • 举报
回复
不明白楼住什么意思 但就程序本身看

if(ch=='\0')
++m;
改为
if(ch=='\20')
++m;

天亮后说晚安 2008-03-04
  • 打赏
  • 举报
回复
get取
Chappell 2008-03-04
  • 打赏
  • 举报
回复

必须清空缓冲区再取数据:fflush(stdin);
Chappell 2008-03-04
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
int main()
{ char ch=0;
int n=0,m=0,j=0;
cout<<"请输入任意字符:"<<endl;
do{
//cin>>ch;
cin.get(ch);
if(ch!='#')
{
j++;
if(ch==' ')
++m;
else
++n;
}
else
{
break;
}
fflush(stdin);
}while(true);
cout<<"#号前的空格有"<<m<<"个"<<endl;
cout<<"#号前的非空格字符有"<<n<<"个"<<endl;
cout<<"#号前的字符有"<<j<<"个"<<endl;
return 0;
}
mfs 2008-03-04
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
int main()
{ char ch=0;
int n=0,m=0,j=0;
cout<<"请输入任意字符(以#号结束):"<<endl;
do{
cin.get(ch);
if(ch!='#')
{
j++;
if(ch==' ')
++m;
else
++n;}
else
break;
}while(true);
cout<<"#号前的空格有"<<m<<"个"<<endl;
cout<<"#号前的非空格字符有"<<n<<"个"<<endl;
cout<<"#号前的字符有"<<j<<"个"<<endl;
system("pause");
return 0;
}
babyvox1999 2008-03-04
  • 打赏
  • 举报
回复
空格是0x20
HelloDan 2008-03-04
  • 打赏
  • 举报
回复

#include<iostream>
using namespace std;
int main()
{
char ch=0;
int n=0,m=0,j=0;
cout<<"请输入任意字符:"<<endl;
do
{
ch=getchar();
if(ch!='#')
{
j++;
if(ch==' ')
++m;
else
++n;
}
else
break;
}while(true);
cout<<"#号前的空格有"<<m<<"个"<<endl;
cout<<"#号前的非空格字符有"<<n<<"个"<<endl;
cout<<"#号前的字符有"<<j<<"个"<<endl;
return 0;
}
dubiousway 2008-03-04
  • 打赏
  • 举报
回复
空格对 输入流来说 是标志符号
,所以必须用cin 的 get 函数。

#include<iostream>
using namespace std;
int main()
{ char ch=0;
int n=0,m=0,j=0;
cout<<"请输入任意字符:"<<endl;
do{cin.get(ch);
if(ch!='#')
{j++;
if(ch==' ')
++m;
else
++n;}
else
break;
}while(true);
cout#号前的空格有"<<m<<"个"<<endl;
cout<<"#号前的非空格字符有"<<n<<"个"<<endl;
cout<<"#号前的字符有"<<j<<"个"<<endl;
return 0;
}
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-04 12:59
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下