Nhập kí tự từ bàn phím khi chạy chương trình

Yêu cầu nếu k nhập không nhập j thì dòng sẽ típ tục xuất hiện. nếu bấm c thì hiện turbo c. nếu bấm p thì hiện turbo pascal.tiếp tục bấm phím bất kì sẽ kết thúc chương trinh.em viết chạy đc. nhưng khôg đúng yêu cầu . nhờ a chị sửa giúp

#include<conio.h>
#include<stdio.h>
main()
{
	tiep:
		printf("NGON NGU LAP TRINH \n");
		if (!kbhit())
		goto tiep;
		tuc:
			printf("TURBO C \n");
			if(getch()==67) 
			goto tuc;
			printf("TORBO PASCAL \n");
			lam:
			printf("TORBO PASCAL \n");
				if(getch()==80)
				goto lam;
			if(getch());
return 0;
}

Phải sleep chứ không nó cứ chạy suốt không dừng cho nhập đâu (treo chương trình).

3 Likes

copy về chạy thử đi, nếu ấn bất kì phím nào đó nó dừng lại à.

Bạn học về vòng lặp (for, while) phải không?
Bạn chỉ mới biết về goto thôi à?
Vì cho chạy liên tục nên tốc độ in ra cực nhanh, @rogp10 muốn in ra từ từ nên yêu cầu bạn dùng hàm sleep().

Bạn bị vấn đề gì? Mô tả cụ thể!

4 Likes

em đang tự hx, hx đến các hàm vào ra trên màng hình, ch đến chương while for. theo đề nếu nhấn c thì hiện turbo c nhưng em viết thì nó hiện cả turbo pascal. turbo pascal thì phải nhấn p. nhưng nhấn c xog nhấn p thì chương trình kết thúc, k hiện turbo pascal

Xin lỗi vì mình quên mất.
Từ đầu đến goto tiep xem ra ổn rồi. Nếu muốn chậm lại thì dùng sleep().

Từ đó trở đi không hề ổn tí nào.

Tham khảo
#include <stdio.h>
#include <conio.h>

int main()
{
    char x;
    wait:
    // sleep(1)
    printf("Xin nhap\n");
    if(!kbhit())
        goto wait;
    loop:
    // x=getchar(); getchar();
    x=getch(); // chỉ gọi 1 lần
    if(x!='c'&&x!='p'){
        goto end;
    }
    if(x=='c'){
        printf("Turbo C\n");
    } else if(x=='p'){
        printf("Turbo Pascal\n");
    }
    goto loop;
    end:
    printf("Tam biet!\n");
    return 0;
}

Trình biên dịch trực tuyến (Online compiler) không hỗ trợ thư viện conio.h nên không biết kết quả ra sao!

Đừng lúc nào cũng dùng hàm trực tiếp, hãy lưu kết quả trả về của hàm rồi dùng nó!

3 Likes

cảm ơn anh rất nhìu . em sửa lại cho phù hợp với đề của e rồi ạ.

#include<stdio.h>
#include<conio.h>
int main()
{
	tiep:
		printf("NGON NGU LAP TRINH \n");
		if(!kbhit())
		goto tiep;
		lam:
			if(getch()=='c')
		{
			printf("TURBO C \n");
		}
			else if(getch()=='p')
			printf("TURBO PASCAL \n");
		if(getch()!='c'&&getch()!='p')
		goto end;
		goto lam;
	end:
return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?