C++ 以下程序片段的可能输出?

C++ 以下程序片段的可能输出?,c++,c,getchar,putchar,C++,C,Getchar,Putchar,答案是:米 有人能解释一下这段代码吗?(MCQ问题)这个问题可以通过排除错误答案来解决。如果字符是x,则此操作将打印字符并退出循环。因此程序不会输出x 任何不包含x的输出字符串都是可能的。在您的MCQ中,mi可能是带有x的唯一选项,所有其他选项在字符串中的某个位置包含x,使其回答不正确 如果输入为“混合…”,则输出为“mi”。下面是展开的循环 for(i=getchar();; i=getchar()) if(i=='x') break; else putchar(i); 您的代码将一直运行,

答案是:米


有人能解释一下这段代码吗?(MCQ问题)

这个问题可以通过排除错误答案来解决。如果字符是
x
,则此操作将打印字符并退出循环。因此程序不会输出
x

任何不包含
x
的输出字符串都是可能的。在您的MCQ中,
mi
可能是带有
x
的唯一选项,所有其他选项在字符串中的某个位置包含
x
,使其回答不正确

如果输入为“混合…”,则输出为“mi”。下面是展开的循环

for(i=getchar();; i=getchar())
if(i=='x')
break;
else putchar(i);
您的代码将一直运行,直到遇到“x”,所以无论您提供什么输入,它都会像使用getchar()函数一样逐字符读取

  • 如果字符为“x”,则中断循环
  • 否则打印字符
比如,如果输入是

斯巴克斯

输出将是

桅杆

for循环

for(i=getchar();; i=getchar())
if(i=='x')
break;
else putchar(i);
for循环的语法和结构是

 for(i=getchar();; i=getchar())
当i=getchar()将读取char'i'时,一切正常。接下来,在更新中没有条件和最终条件,您再次读取一个字符,因此它是一个无限循环

循环只有在遇到作为语句的
'x'
时才会终止

for ( variable initialization; condition; variable update )
否则它将继续打印字符

if(i=='x')
break;
这是你的电话号码


希望能有帮助

但在本问题中没有提到投入?我复制了这个问题。@Abdul,可以像Gyaptjain那样确定输入。
if(i=='x')
break;
else putchar(i);