01/10/2018, 08:14
Kí tự '!' bị nhảy khi code với lệnh getchar
Các bạn ơi mình đang mắc phải vấn đề này!
Mình đang xem bài 25 getchar() của anh Đạt thì mình nhận thấy có 1 cái gì đó rất kì kì
Sau khi mình build&run thì nó không error hay warning nhưng mình thấy là lúc đầu printf có dấu chấm than “!” cuối câu nhưng Run xong thì dấu chấm than đó nhảy xuống và nằm lẻ loi ở dưới cùng và mình chẳng hiểu vì sao =.=
Các bạn giúp mình với nhé
int main(int argc, char *argv[])
{
char c;
char ten[20];
int i = 0;
printf("Hay nhap ho & ten cua ban va an ENTER de ket thuc!
");
do
{
c = getchar();
ten[i]= c;
i++;
}while(c!='
');
ten[i]= 0;
printf("Xin chao %s !", ten);
return 0;
}
Bài liên quan
Vấn đề nằm trong vòng lặp của bạn, các ký tự được đưa vào mảng
ten[20]
rồi mới check xem nó có phải là ‘\n’ hay không. Nếu muốn sửa thì có 2 cách (có thể nhiều hơn, tùy thuộc vào độ sáng tạo của bạn):ten[i] = 0
=>ten[i-1] = 0
: biếni
đã tăng 1 trước khi rời vòng lặp nên nó không trỏ vào ký tự ‘\n’.c != '\n'
trước khi đưa vào mảng.KK Mình làm được rồi cám ơn bạn đã chỉ giáo