01/10/2018, 10:11

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

Quang Minh viết 12:16 ngày 01/10/2018

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

明玉 viết 12:17 ngày 01/10/2018

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:

en.wikipedia.org

Character encoding

Character encoding is used to represent a repertoire of characters by some kind of encoding system. Depending on the abstraction level and context, corresponding code points and the resulting code space may be regarded as bit patterns, octets, natural numbers, electrical pulses, etc. A character encoding is used in computation, data storage, and transmission of textual data. "Character set", "character map", "codeset" and "code page" are related, but not identical, terms. Early character codes ...


Để đổ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.

Trần Hoàn viết 12:15 ngày 01/10/2018

kí tự ascii thứ 130

Dũng Nguyễn Việt viết 12:24 ngày 01/10/2018

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

Trần Hoàn viết 12:27 ngày 01/10/2018

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.

Dũng Nguyễn Việt viết 12:17 ngày 01/10/2018

e cảm ơn ạ

Bài liên quan
0