This is one of the easiest way to convert a std::string to std::wstring and vice versa:
1. Convert string to wstring:
std::string myString = " This is test string";
std::wstring wideString( myString.begin(), myString.end());
or
std::string myString = " This is test string";
std::wstring wideString;
wideString.assign( myString.begin(), myString.end());
2. Convert wstring to string - Similar to converting string to wstring
std::string wideString= L" This is wide string";
std::wstring asciiString( wideString.begin(), wideString.end());
or
std::string wideString= L" This is test string";
std::wstring asciiString;
asciiString.assign( wideString.begin(), wideString.end());
3. convert wstring to integer
int myInt;
wstring myString;
myInt = wcstol( myString.c_str(), NULL, 10);
read more about this function here: http://www.cplusplus.com/reference/cwchar/wcstol/.
Sky WOLF
Thứ Tư, 15 tháng 5, 2013
[C/C++] Check if a file exists or not
you can use fopen("file_name", "w+"); to check if a file exist or not.
For more checking option, such as check access level you can use
access()
, e.g.:#include <unistd.h>
int res = access(path, R_OK);
if (res < 0) {
if (errno == ENOENT) {
// file does not exist
} else if (errno == EACCES]) {
// file exists but is not readable
} else {
// uh oh
}
}
Thứ Sáu, 28 tháng 9, 2012
Learning Lua (1) - Basic Concept
Những khái niệm cơ bản trong Lua
1. Giá trị và kiểu dữ liệu
- Cũng giống như Java Script, Python, ..., Lua là một ngôn ngữ có kiểu dữ liệu động, nghĩa là các biến khi được khai báo không cần phải xác định kiểu dữ liệu. Kiểu dữ liệu của biến được xác định phụ thuộc vào kiểu dữ liệu được gán.
ví dụ:
local temp ; -- Chưa có kiểu dữ liệu
temp = 'Hello world!'; -- bây giờ là kiểu string
temp = 12; -- Bây giờ temp là kiểu int
- Có 8 kiểu dữ liệu cơ bản trong Lua: nil, boolean, number, string, function, userdata, thread và table.
+ Nil là kiểu dữ liệu đặc biệt. Nó biểu diễn giá trị rỗng giống như NULL trong C++, Java.
+ Boolean gồm có 2 giá trị TRUE và FALSE. Cả False và nil đều làm cho biểu thức điểu kiện trả về false, các giá trị khác nil sẽ trả về true.
+ Number có thể là số nguyên hay số thực, các thao tác trên kiểu dữ liệu number tương tự như trên C (Vì Lua được xây dựng dựa trên C).
+ String (chuỗi): chuỗi trong Lua được xác định bởi cặp dấu "<value>" hoặc '<value>'. Sự khác biệt giữa 2 cách định nghĩa chuỗi đó là khi sử dụng "", nếu muốn trong chuỗi chứ kí tự " thì phải thêm dấu \ phía trước còn khi sử dụng '' thì không cần.
+ function: là kiểu dữ liệu tương tự như con trỏ hàm trong C++, nó chứa địa chỉ của một hàm và có thể gọi hàm thông qua biến kiểu function. Lua có thể gọi hàm được viết bằng Lua hoặc hàm viết bằng C
+ user data: kiểu dữ liệu người dùng định nghĩa cho phép người dùng lưu 1 kiểu dữ liệu tùy ý được định nghĩa trong C/C++ vào một biến lua
1. Giá trị và kiểu dữ liệu
- Cũng giống như Java Script, Python, ..., Lua là một ngôn ngữ có kiểu dữ liệu động, nghĩa là các biến khi được khai báo không cần phải xác định kiểu dữ liệu. Kiểu dữ liệu của biến được xác định phụ thuộc vào kiểu dữ liệu được gán.
ví dụ:
local temp ; -- Chưa có kiểu dữ liệu
temp = 'Hello world!'; -- bây giờ là kiểu string
temp = 12; -- Bây giờ temp là kiểu int
- Có 8 kiểu dữ liệu cơ bản trong Lua: nil, boolean, number, string, function, userdata, thread và table.
+ Nil là kiểu dữ liệu đặc biệt. Nó biểu diễn giá trị rỗng giống như NULL trong C++, Java.
+ Boolean gồm có 2 giá trị TRUE và FALSE. Cả False và nil đều làm cho biểu thức điểu kiện trả về false, các giá trị khác nil sẽ trả về true.
+ Number có thể là số nguyên hay số thực, các thao tác trên kiểu dữ liệu number tương tự như trên C (Vì Lua được xây dựng dựa trên C).
+ String (chuỗi): chuỗi trong Lua được xác định bởi cặp dấu "<value>" hoặc '<value>'. Sự khác biệt giữa 2 cách định nghĩa chuỗi đó là khi sử dụng "", nếu muốn trong chuỗi chứ kí tự " thì phải thêm dấu \ phía trước còn khi sử dụng '' thì không cần.
+ function: là kiểu dữ liệu tương tự như con trỏ hàm trong C++, nó chứa địa chỉ của một hàm và có thể gọi hàm thông qua biến kiểu function. Lua có thể gọi hàm được viết bằng Lua hoặc hàm viết bằng C
+ user data: kiểu dữ liệu người dùng định nghĩa cho phép người dùng lưu 1 kiểu dữ liệu tùy ý được định nghĩa trong C/C++ vào một biến lua
Thứ Năm, 27 tháng 9, 2012
Giới thiệu ngôn ngữ LUA
Lua là một ngôn ngữ script rất nhanh và mạnh mẽ. Lua được sử dụng từ rất lâu trên thế giới, đặc biệt là trong lĩnh vực game. Tuy nhiên ngôn ngữ này chưa được sử dụng phổ biến ở Việt Nam. Bài viết này sẽ giới thiệu một số tính năng cơ bản của Lua
1. Lua là gì?
Lua là một ngôn ngữ script mạnh
mẽ, nhanh, nhẹ và có khả năng “nhúng” vào các ngôn
ngữ khác.
Lua là sự kết hợp gữa cú pháp
lệnh đơn giản và kiểu mô tả dữ liệu động được
xây dựng dựa trên mảng có khả năng mở rộng. Các đoạn
lệnh được viết bằng Lua được thực thibằng cách
thông dịch max lệnh qua một máy ảo dựa trên thanh ghi
(register-based), bộ thông dịch của Lua cung cấp cơ chế
quản lý bộ nhớ thông qua một bộ gom rác. Những điều
này làm cho Lua trở thành một ngôn ngữ lý tưởng để
cấu hình, viết kịch bản và tạo ra các mẫu prototype
một cách nhanh chóng.
Thứ Ba, 22 tháng 5, 2012
Cài lại gub cho Ubuntu
Sau nhiều lần chật vật vì bị lỗi grub, bi giờ chia sẻ kinh nghiệm cho mọi người lun:
chạy một đĩa liveCD của Ubuntu, Kubuntu hay LinuxMint ........ đều được.
chạy các lệnh sau:
sudo apt-get update
sudo mount /dev/"phan vung Ubuntu" /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo chroot /mnt
apt-get install grub-common
apt-get install grub-pc
apt-get install grub2
nếu sử dụng các liveCD không dựa trên Ubuntu thì không thể sử dụng lệnh apt
để cài đặt các gói phần mềm mà phải tải thủ công từ internet (ex: http://pkgs.org/ )
sau đó copy vào thư mục home của Ubuntu trên /mnt/home
sau đó dùng lệnh dpkg -i "tên gói.deb" để cài đặt
Sau khi cài xong, chạy lệnh:
Một số lỗi khi tạo project wxWiget với Codelite trên linux
1. Lỗi .
wx/wx.h: No such file or directory
........................
(etc)
Để giải quyết lỗi này chỉ cần chạy lệnh sau
ln -s /usr/lib/wx/include/gtk2ud-2.5/wx/setup.h /usr/include/"your wx version"/wx/setup.hThay "your wx version" bẳng tên thư mục wx tương ứng của bạn. ví dụ như của tôi là wx-2.8 thì lệnh sẽ như sau
ln -s /usr/lib/wx/include/gtk2ud-2.5/wx/setup.h /usr/include/wx-2.8/wx/setup.h
2. Lỗi
#error "No Target! You should use wx-config program for compilation flags!"
Lỗi này do chưa cài gói debug cho wxWiget.
có 3 cách giải quyết:
- Biên dịch ở chế độ Release
- cài thêm Wx ở chế độ debug (trên ubuntu: sudo apt-get install libwxgtk2.8-dbg)
- bỏ tùy chọn --debug=yes trong compiler option và linker option (click chuột phải vào project --> Setting)
Thứ Năm, 26 tháng 4, 2012
Burg manager: tùy chỉnh giao diện màn hình boot Grub
Bài này được dẫn nguồn từ Quantrimang.com và được chỉnh sủa một số chỗ vì mình làm như trong hướng dẫn nhưng không thành công.
xem thêm bản tiếng Anh tại đây
Kể từ khi Ubuntu chính thức nâng cấp bản bootloader để sử dụng Grub 2 thì việc thay đổi màn hình Grub không còn đơn giản và dễ dàng như trước nữa.
Đối với những người sử dụng có kinh nghiệm thì có thể quá trình này không mấy phức tạp, còn lại là những người mới dùng hoặc có ít kinh nghiệm thì đây là 1 việc không thể. Và để hỗ trợ quá trình này, chúng tôi sẽ hướng dẫn các bạn cách thay đổi màn hình Grub với công cụ BURG Manager.
BURG là từ viết tắt của Brand-new Universal bootloadeR from Grub, thực chất đây là 1 hệ thống bootloader dựa trên Grub, hỗ trợ tố các nền theme và nhiều hệ điều hành khác nhau (Linux, Windows, Mac OS X). Mặt khác, đây cũng là 1 công cụ hỗ trợ khá đa dạng với giao diện đồ họa, dễ dàng giúp người sử dụng cài đặt và quản lý BURG bootloader, thay đổi theme, thay đổi các thiết lập của Burg hoặc boot trực tiếp từ file *.iso.
Cài đặt:
Đăng ký:
Bài đăng (Atom)