Em có đoạn code như này:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int houseNumber;
printf("Your house's number is: ");
scanf("%d", &houseNumber);
char fullName[20] ;
char c;
int i = 0;
printf("Your name is: ");
do {
c = getchar();
fullName[i] = c;
i++;
} while (c != '\n');
fullName[i] = 0;
printf("%s, Sure?", fullName);
}
Nhưng sau khi chạy thì đến đoạn scanf đầu tiên xong ấn Enter thì nó chạy xong ct luôn, e mày mò 1 lúc thì thử thêm:
c = getchar();
c = 0;
như thế này:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int houseNumber;
printf("Your house's number is: ");
scanf("%d", &houseNumber);
char fullName[20] ;
char c;
c = getchar();
c = 0;
int i = 0;
printf("Your name is: ");
do {
c = getchar();
fullName[i] = c;
i++;
} while (c != '\n');
fullName[i] = 0;
printf("%s, Sure?", fullName);
}
thì nó chạy ok, vậy em suy ra là hàm getchar() nó sẽ lấy default value là ký tự gần nhất ta nhập từ bàn phím vào đúng ko ạ, em cũng search rồi nhưng đọc tiếng anh ko hiểu lắm nên hỏi lại cho chắc ăn.
Nếu đúng thì có cách nào để ko cần viết 2 dòng đó mà vẫn được ko?
Vì lặp lại 2 lần c = getchar() em thấy ngứa mắt lắm.