#include<stdio.h> int main() { char c; while ((c=getchar())!='?') putchar(--c); return 0; }
当输入Y?N?时,为什么输出的是X
没错啊,c=getchar()只能取到第一个字符,不管你一行输入多少。所以c='Y'茄枝,--c就颤枣敏变成了岩扒X。所以每次只能输入一个字符,输入Y出X,输入N出M,输入?退出
putchar 里输出的是--c 即先自减1 在带入蚂消银表达式 你输入'Y' 减一后 当然变成'X'了。。'N'减一变为'M'。坑定桥迹不会输出X的 你再去试闷宴下。。肯能你没保存好
你输入Y后,执行了--C操作,手含--C就是对ASCII码裂禅进肆薯尘行减1,Y的ASCII码减1就是X;N输出的是M,不是X我执行过了。
第一搜好个读入的字符是y
所以c
==
y
这个--c就是x
所以putchar(--c)输出的就是x
下一个读取的字符是?
但是?世穗铅不满足while循环的条件
所以while不再执行
后面的族缺字符也不再读取
相关内容
- #include<stdio.h> void main() { int i,low=0,high=5,t,temp,k; int a[6]={8,7,5,6,4,1}; printf("origin
- #include<fstream>和#include<iomanip>有什么用在C++里?(急!!)
- #include<stdio.h> void delete_string(char str[],char ch) { int i,j; for(i=j=0;str[i]!='\0';i++) if(
- #include<stdio.h> int main() { char str[20]; char*p=str; printf("input string:\n"); scanf("%s",p);
- #include <stdio.h>void main(){ char shape[8];char a,b;int i,j;
- #include "stdio.h" void main() { int i,j; for(i=1;i<=16;i++); {scanf("%d",&j); if(j%4!=0) continue;
- #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct LNode { int data; struct LNo
- #include命令的格式和功能各是什么?使用尖括号和双引号在含义上有什么区别?lt;>表示程序将会首先且只会去你的系统类库目录查找你