c++为什么循环不停止?

来源:百度知道 编辑:UC知道 时间:2024/05/14 01:51:54
do
{
cin>>str;
if(str=' ' || (str<91 && str>64) || (str>96 && str<123))
{
strofmiyao[k]=str;
k++;
}
else break;
}
while(str!='\n');
当我输入字符串后按回车,但是循环不停止,仍要求输入字符
我想可能是我安的c++有问题,将=改为==后还是不行

用cin>>str;当然不行,回车键不能判断是'\n'啊 程序改成下面这样啊就OK了啊

#include<iostream>
using namespace std;

int main()
{
char str;
int k=0;
char strofmiyao[100];
memset(strofmiyao,0,100);
do
{
cin.get(str);
if(str==' ' || (str<91 && str>64) || (str>96 && str<123))
{
strofmiyao[k]=str;
k++;
}
else break;
}
while(str!=13);
cout<<strofmiyao<<endl;
}

(str<91 && str>64) || (str>96 && str<123)
改成:
(str<char(91) && str>char(64)) || (str>char(96) && str<char(123))试一下

仔细检查程序,STR输入后都没有变化.
另:输入的语句放到循环外,strofmiyao[k]=str; k++;
不知道你的变量类型是什么的,不敢发表多余的意见.

if(str=' ' || (str<91 && str>64) || (str>96 && str<123))
改为
if(str==' ' || (str<91 && str>64) || (str>96 && str<123))

粗心了吧