我随手写的程序 请C++高手帮我看看为什么运行时不产生输出

#include<iostream>
#include<string>
using namespace std;
int main()
{
string inbuf;
while(cin>>inbuf&&!inbuf.empty())
for(int i=0;i!=inbuf.size();++i)
{
if(inbuf[0]!='_')
continue;
cout<<inbuf[i]<<endl;
}
}

--------------------Configuration: jkl - Win32 Debug--------------------
Linking...

jkl.exe - 0 error(s), 0 warning(s)

程序没有错误,可能是你输入的方法有问题:

在输入时,程序要求以空字符结束输入,所以,在最后一个字符串输入完成并回车后应该两次按下CTRL+Z输入两个空字符然后再按回车才能结束输入。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-28
#include<iostream>
#include<string>
using namespace std;
int main()
{
string inbuf;
if(cin>>inbuf&&!inbuf.empty()) //改成if,要不无限循环
for(int i=0;i!=inbuf.size();++i)
{
if(inbuf[0]!='_') //去掉continue
cout<<inbuf[i]<<endl;
}
}
第2个回答  2008-10-28
你这程序的意思是当输入的字符串是以下划线开头的时候才输出。如果你不以'_'开头,当然不会输出了,你输入_test,就会输出了。
第3个回答  2008-10-28
string inbuf;
while(cin>>inbuf&&!inbuf.empty())
for(int i=0;i!=inbuf.size();++i)
{
这一段再仔细检查一下,错了
第4个回答  2008-10-28
你的while不是无限吗?
相似回答