getchar()跟ch = getchar()的区别在哪?
我一开始写了下面的代码,点击回车后只是换了行,还要再按一次回车才输出结果,结果还是错的。#include <stdio.h>
#include <ctype.h>
int main(void)
{
//输入英文字母,计算对应值的总和
const int letter_count = {1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10};
int scrabble = 0;
printf("Enter a word: ");
while (getchar() != '\n') {
scrabble += letter_count;
}
printf("Scrabble value: %d\n", scrabble);
return 0;
}
后面我改成ch = getchar()之后就正常了,这是为什么?这两个不一样吗?改之后的代码如下:
#include <stdio.h>
#include <ctype.h>
int main(void)
{
//输入英文字母,计算对应值的总和
const int letter_count = {1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10};
int scrabble = 0;
char ch;
printf("Enter a word: ");
while ((ch = getchar()) != '\n') {
scrabble += letter_count;
}
printf("Scrabble value: %d\n", scrabble);
return 0;
} while (getchar() != '\n')只是做判断真假
while ((ch = getchar()) != '\n')做两件事,赋值和做判断 你每调用一次getchar,就会接收一个字符
不然怎么分辨你是想用刚才输入的字符还是再接收一个字符?
页:
[1]