Hỏi về hàm fflush(stdin) trong C

Tình hình là mình viết code mà đến chỗ nhập chuỗi thứ nhất tự nhiên nó bỏ qua luôn, mình dùng 1 cái hàm fflush(stdin) nhưng nó vẫn bị, mình dùng 2 cái fflush nó vẫn bị, mọi người giúp mình cái, mình bó tay rồi, cảm ơn mọi người.

// ConsoleApplication2.cpp : Defines the entry point for the console application.
//

#include "stdio.h"
#include "string.h"

#define SI_SO_MAX 50
#define HO_TEN_MAX 30

int main()

{
	char ds[SI_SO_MAX][HO_TEN_MAX];
	char *p[SI_SO_MAX];
	char *tmp;
	int i, j, n;
	do {
		printf("Nhap si so lop: ");
		scanf("%d", &n);
		fflush(stdin);
		fflush(stdin);
	} while (n<1 || n>SI_SO_MAX);
	for (i = 0; i < n; i++)
	{
		printf("Hoc vien thu %d", i);
		gets_s(ds[i]);
		p[i] = ds[i];
	}
	for (i = 0; i < n - 1; i++)
	{
		for (j = i + i; j < n; j++)
		{
			if (strcmp(p[i], p[j]) > 0)
			{
				tmp = p[i];
				p[i] = p[j];
				p[j] = tmp;
			}
		}
	}
	printf("Danh sach lop sau khi sap xep:\n");
	for (i = 0; i < n; i++)
	{
		printf("s\n", p[i]);
	}
	printf("\n");
	getchar();
	return 0;
}

Đừng dùng fflush. Nó không ảnh hưởng tới input đâu.
Thay thế bằng getchar hay cái gì khác đi

1 Like

mình chịu getchar thì nó báo lỗi.

Tại vì bạn chưa khai báo thu viện.

#include <stdlib.h>
1 Like

nó vẫn báo lỗi nè

Ý mình là dùng getchar để lấy cái \n đi sau khi scanf. Chỉ đơn giản là getchar();

1 Like

tks bạn nha, mình đang cài lai VS 2013 , bản 2017 nhiều cái thay đổi quá.

Hình như bản nào cũng vậy. Nhưng mà ai đời lại cài cái bản cũ code theo phong cách cũ chứ.

1 Like

tại vì mình đang học C/C++ ở trên trường cũng như trung tâm người ta đều dùng bản cũ, mình sợ chưa đủ trình độ mà dùng bản mới này sợ lạc đường

Cứ theo nơi mình học họ cài thế nào mình cài như vậy.

Bản 2013 khá ổn định với update 5

mình cũng dùng bản 2013 1 thời gian, vẫn dùng bình thường, tự nhiên qua 2017 nó bị lỗi đủ thứ.

cho mình xin cai link tải bản 2013 trên microsoft được không, mình tìm toàn thấy 17 với 15, cảm ơn bạn

Đây bạn:

https://www.visualstudio.com/vs/older-downloads/

1 Like

cảm ơn bạn đã giúp đỡ

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