永发信息网

循环读入字符遇回车结束输入(C++/VS2005)

答案:3  悬赏:10  手机版
解决时间 2021-02-21 01:00
#include
#include
#include
using namespace std;

char transform(char letter)
{
if(letter>='a'&&letter<='z')
{
letter-=32;
}

else if(letter>='A'&&letter<='Z')
{
letter+=32;
}

return letter;
}
int main()
{
char input[10];
int count=0;
for(int i=0;i<10;i++)
{
cin>>input[i];;
count++;
if(input[i]=='\r') break;
}
cout<<"原来的字符为:";
for(int i=0;i {
cout< }
cout< cout<<"转换后的字符为:";
for (int i=0;i {
cout< }
cout< return 0;
}
这是代码,可是不是我的要求,我输入回车后并没有结束输入,请问是什么问题,还有,我这样写是不是写复杂了?有没有什么简单的方法?

早就把\r改成\n试过了,没有效果啊!
最佳答案
1. 现在输入回车后没有结束。应该是如“雷震八方”网友所说,将\r 改成 \n
2. 更简单的方法可以直接用getline得到一个字符串,然后挨个处理每个字符就可以了。当然,不知道你这里的10个字符的限制是否一定要,如果不超过10个字符的话用getline反而不好了。
全部回答
#include #include #include using namespace std; char transform(char letter) { if(letter>='a'&&letter<='z') { letter-=32; } else if(letter>='a'&&letter<='z') { letter+=32; } return letter; } int main() { char input[10]; int count=0; for(int i=0;i<10;i++) { //cin>>input[i];; cin.get(input[i]); //使用cin的get函数即可读入回车符 count++; if(input[i]=='\n') break; } cout<<"原来的字符为:"; for(int i=0;i
  • 2楼网友:洒脱疯子
  • 2021-02-20 17:42
if(input[i]=='\r') break; \r 换成\n 试试
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯