01/10/2018, 14:16
Hỏi cách xóa enter trong bộ nhớ đệm
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch;
int nVowels,nConsonants,nOthers;
nVowels=nConsonants=nOthers=0;
printf("Nhap ky tu tren ban phim:");
while (ch!= '
')
{
ch = getchar();
ch = toupper(ch);
if(ch>='A'and ch<='Z')
{switch (ch){
case'A':
case'E':
case'I':
case'O':
case'U':nVowels++;break;
default:nConsonants++;
}
}else nOthers++;
}
printf("nVowels:=%d
",nVowels);
printf("nConsonants:=%d
",nConsonants);
printf("nOthers:=%d
",nOthers);
getchar();
return 0;
}
Khi chạy thì cái nOthers luôn nhảy lên 1 là phím enter, ai giúp em xóa enter khi nhập vào trong bộ nhớ đệm đc ko ạ
Bài liên quan
Ơ, nó luôn tăng thêm 1 vậy thì cứ trừ 1 ra là xong chứ vấn đề có to tát gì đâu nhỉ Với lại, ký tự newline không còn nằm trong bộ nhớ đệm đâu, là bạn không giải quyết thôi. Có thể chèn thêm 1 cái
if
kiểm tra'\n'
cho phầnelse nOthers++;
nhưng như vậy thì không hay (tối ưu) bằng cách trừ đi 1 cho nOthers.Với lại:
HOW?
‘A’ với ‘Z’ là con số trong C/C++
Ý mình là chữ “and” kia kìa
and được chấp nhận như là && mà.
Cái này mới à? GCC không compile được :v
EDIT: okay, g++ thì được. Hết hồn, đó giờ toàn code C chứ không có C++, thiếu sót quá
http://en.cppreference.com/w/cpp/keyword/and
Có
or
vànot
nữa. C++ khác C nhiều.Lỗi sai là do bạn xét điều kiện trước khi getchar thôi, không phải do enter đâu