Lỗi khi hiển thị kí tự ascii

E có đoạn code sau:

#include <iostream>
using namespace std;

int main()
{
	int dem;
	cout << "Nhap ki tu ASCII thu (nhap 0 de ket thuc): ";
	cin >> dem;
	cout << char(dem) << endl;
	while (dem != 0)
	{
		cout << "Nhap ki tu ASCII thu (nhap 0 de ket thuc): ";
		cin >> dem;
		cout << char(dem) << endl;
	}
	system("pause");
	return 0;
}

Cụ thể là em viết ct hiển thị kí tự ascii. Nhưng khi e hiển thị kí tự ascii thứ 130 là chữ “é” thì nó lại hiển thị dấu “,”. Giúp em với!


P.S: câu hỏi của e hơi ngu mong mọi người thông cảm

ASCII bao gồm bao nhiêu ký tự?

Encoding trong CMD cũng như ở mọi nơi là một vấn đề rất rắc rối. Bạn đọc cho mình bài này:


Để đổi encoding/codepage của cmd, bạn dùng lệnh này:

system("chcp 1252") // Ví dụ đổi sang Latin-1, mã của nó trong Windows là 1252
// hoặc
system("chcp 65001") // UTF-8

Mà bạn hiểu thế nào là ASCII, chuẩn nó chỉ đến mã 127 là hết rồi.

:joy:

Theo như e tìm hiểu thì extended ascii có 255 kí tự

chỉ có 128 ký tự chuẩn, còn 255 là bảng mở rộng, không có quy ước chung.
Biết bảng mã TCVN3 không? Chính là ASCII phong cách Việt Nam đấy.

Với cả kiểu char thì chỉ nhận từ -128 đến +127 thôi.

1 Like

e cảm ơn ạ :slight_smile:

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