这个程序的输出为什么有问题

whuyotc 2008-11-17 02:50:38
/*当运行以下程序的时候,从键盘输入right?回车*/
void test1()
{
char c;
cin>>c;
while((c=getchar())!='?')
putchar(++c);
}


为什么我 在vs2008上运行得到的结果是 jhiu

我预期的结果是sjhiu

那么这个s到哪里去了呢?
...全文
111 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyj626 2008-11-17
  • 打赏
  • 举报
回复
jf
nullah 2008-11-17
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int main()
{
char c;
//cin >> c; //你获得C后又没输出它
while((c=getchar()) != '?')
putchar(++c);

return 0;
}
nullah 2008-11-17
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int main()
{
char c;
//cin >> c; //你获得C后又没输出它
while((c=getchar()) != '?')
putchar(++c);

return 0;
}
nullah 2008-11-17
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int main()
{
char c;
//cin >> c; //你获得C后又没输出它
while((c=getchar()) != '?')
putchar(++c);

return 0;
}
whuyotc 2008-11-17
  • 打赏
  • 举报
回复

明白了
谢谢各位啊
^_^
就呆在云上 2008-11-17
  • 打赏
  • 举报
回复
void test1() 
{
char c;
cin>>c;
while(c!='?')
putchar(++c), cin>>c;
}

int main()
{
test1();
return 0;
}


输入:
right?
输出:
sjhiu
这样就ok了,你那样第一个r被cin了却没有输出,进去循环之后又getchar了一次!
zhy282289 2008-11-17
  • 打赏
  • 举报
回复
cin >> c;// c = 'r'
while 里的第一次 c = getchar() //c = 'i';所以输出的时候从i 开始咯。
Longinc 2008-11-17
  • 打赏
  • 举报
回复
把cin>>c;删了
xhs_lh04 2008-11-17
  • 打赏
  • 举报
回复
呵呵是的啊
你先有一次输入,但没输出.就把你的s过滤掉,没输出了
taodm 2008-11-17
  • 打赏
  • 举报
回复
cin>>c;
这行不是吃素的。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧