C problem, lệnh gets_s thứ 1 bị đè bởi lệnh gets_s thứ 2

#include "stdio.h"
#include "conio.h"
#include "ctype.h"
#include "string.h"
int main()
{
    char name[70], id[10];
    	int vitri = 0;
    	printf("enter name: "); 
    	gets_s(name);
    	printf("enter id: ");
    	gets_s(id);
    	int L = strlen(name);
    	int M = strlen(id);
    	for (int i = 0; i < L; i++)
    	{
    		if (name[i] == ' ')
    			vitri = i + 1;
    	}
    	for (int i = vitri; i < L; i++)
    		printf("%c", tolower(name[i]));
    	printf(".");
    	for (int i = 0; i < vitri; i++)
    	{
    		if (name[i] != ' ' && (name[i - 1] == ' ' || i == 0))
    		{
    			printf("%c", tolower(name[i]));
    		}
    	}
    	for (int i = 3; i < M; i++)
    		printf("%c", id[i]);
    	printf("@sinhvien.hoasen.edu.vn");
           _getch();
    }	

Em có thử xài fflush(stdin) nhưng không thành công cho lắm, khi cho chạy nó chỉ cho phép em nhập vào phần id còn phần name thì hoàn toàn không được. Mọi người có thể cho em biết em đang sai chỗ nào không ạ

1 Like

fflush(stdin) giờ cũng hạn chế lắm rồi, getchar() từ từ là chạy được.

Thực ra fflush(stdin) là một câu không chỉnh nhưng vì lí do nào đó vẫn cho sử dụng thôi, sau này bỏ rồi.

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