C scanf không nhập được 2 xâu liên tiếp

cho em hỏi là sao em dùng scanf thì lại không nhập đc 2 xâu (code như dưới ạ)

#include<stdio.h>
#include<conio.h>
#include<string.h>

int main(){
	char ten[30];
	char lop[30];
	printf("\n nhap ho va ten cua may vao day: ");scanf("%s",ten);
	printf("\n nhap ten lop m vao day :");scanf("%s",lop);
 return 0;
}

còn khi em dùng gets thì lại nhập được 2 xâu

#include<stdio.h>
#include<conio.h>
#include<string.h>

int main(){
	char ten[30];
	char lop[40];
	printf("\n nhap ho va ten cua may vao day: ");gets(ten);
	printf("\n nhap ten lop m vao day :");gets(lop);
 return 0;
}

em cảm ơn!

EDIT (@library): Cậu nhớ sử dụng Markdown để format code từ các post sau nhé! :smile:

Vì khi dùng scanf() nhập chuỗi thì chuỗi chỉ nhận kí tự, ngừng nhận khi gặp khoảng trắng.
Trong trường hợp này thì dùng gets() là hợp lý rồi.

5 Likes

em hiểu rồi ạ…em cảm ơn

vâng ạ, lần đầu em đăng bài nên em không biết ạ

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?