Trên DNH có một bài: https://daynhauhoc.com/t/cach-d-c-va-ghi-file-unicode-c
Cách nhập và xuất tiếng Việt có dấu trong C++
hay lắm, thank nhiều nhé bạn
Bạn cho mình hỏi, cái phần này trong code của bạn là đặt font hiển thị là consolas phải không ?
CONSOLE_FONT_INFOEX consoleFont;
consoleFont.cbSize = sizeof(consoleFont);
GetCurrentConsoleFontEx(hdlConsole, FALSE, &consoleFont);
memcpy(consoleFont.FaceName, L"Consolas", sizeof(consoleFont.FaceName));
SetCurrentConsoleFontEx(hdlConsole, FALSE, &consoleFont);
Và giải thích giúp mình luôn cái memcpy là gì, hàm, thủ tục ???
Giải thích rõ giúp mk, mình đang học Pascal nhưng mk có thể đọc đc code C++ được.
Thủ tục copy vùng nhớ đó bạn, gán cho nội dung của FaceName bằng L"Consolas"
.
CONSOLE_FONT_INFOEX
là 1 struct mà trong đó, member FaceName
luôn là 1 mảng WCHAR
, 32 phần tử.
memcpy(consoleFont.FaceName, L"Consolas", sizeof(consoleFont.FaceName));
memcpy
là thủ tục copy vùng dữ liệu trong bộ nhớ, cái gì copy được là nó copy, nó copy theo số BYTE
, L"Consolas"
thực ra là pointer trỏ đến chuỗi đó (trong .rdata của app), sizeof(consoleFont.FaceName)
là 64 (1 phần tử WCHAR là 2 byte), bạn phải học full cơ bản C/C++, hiểu được chính xác về bản chất C/C++ mới hiểu được, tham khảo: http://www.cplusplus.com/reference/cstring/memcpy/
P.S: thật sự là nên học C/C++ đi đôi với ASM.
Tuy có hơi lâu (2 năm chứ mấy) . Nhưng mình cũng xin góp ý tý.
Bạn có thể dùng lệnh chuyển gói CHCP
của console để viết tiếng Việt.
Cụ thể là
#include <iostream>
int main() {
system("chcp 65001");
std::cout << "Việt Nam vô địch";
return 0;
}
Hmm. . . sau một hồi nghiên cứu thì theo cách này mk thấy chỉ xuất được chứ chưa nhập đc, chắc lại phải làm theo Ngọc tỷ tỷ rồi.
@MeigyokuThmn
làm sao để trở lại bình thường được vậy, nếu dùng thế thì ko dùng kiểu biến float đc??
mấy chú code thì comment cho người ta hiểu với
Bạn giải thích code được không ?? Viết vậy không hiểu
mn ơi cho e hỏi với ạ
e gõ được tiếng việt nhưng khi chạy thì nó lại ra lỗi ngôn ngữ ạ
ai sửa giúp e với
tại sao mình chạy lại có lỗi này nhỉ “_O_U16TEXT’ was not declared in this scope”