C语言问题:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
可以使用getch()函数读取字符。
函数用途:从控制台读取一个字符,但不显示在屏幕上 .
例如:
char ch;
ch=getch();
用ch=getch();会等待用户按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。
不过路过的朋友看到最后回答我一个问题,百思不得其解,能不能帮我解决一下呢
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
int main()
{
char c;
printf("please input a char:\n");
//while(c=getch()!='Y')
c=getch();
while(c!='Y')
//while(c=getch()!='Y')
{
printf("%c\n",c);
switch(c)
{
case 'M':
printf("Monday\n");
break;
case 'T':
if(c=getch()=='u')
printf("Tuesday\n");
else if(c=getch()=='h')
printf("thursday\n");
else
printf("error\n");
break;
case 'W':
printf("Wednesday\n");
break;
case 'F':
printf("Friday\n");
break;
case 'S':
if(c=getch()=='a')
printf("Saturday\n");
else if(c=getch()=='u')
printf("Sunday\n");
else
printf("error\n");
break;
}
break;
}
return 0;
}
问题:
c=getch();
while(c!='Y')
这两行若改成:
while(c=getch()!='Y')
为何会不对,从键盘获取的时候乱码,如下图所示:
每次只要写成一行就会出现这个类似汉字口的情况,写成两行则不会,可我觉得这个是一样的呀,哪位朋友帮一下我,万分感谢。