Tôi đã khai báo biến uint8 và khi giá trị trong đó được in, tôi nhận được khuôn mặt cười và không gian màu trắng. Không nên nó hiển thị giá trị số nguyên?uint8 hiển thị các ký tự lạ
Trả lời
Tôi đặt cược uint8
là typedef
cho unsigned char
trong tiêu đề hệ thống của bạn. Sau đó, std::cout << u
sẽ in các ký hiệu thay vì giá trị số nguyên, trong đó u
thuộc loại uint8
. Hãy thử
std::cout << static_cast<int>(u);
hoặc
std::cout << +u;
có giá trị số được in ra.
nhưng sẽ không đúc thành int32? – aks
Có, nó sẽ. Nhưng vấn đề là gì? Điều đó tạo ra một int tạm thời từ biến uint8 của bạn và nạp nó vào std :: cout để in. – usta
@Rajesh. Nếu bạn đang in chữ số thập phân, bạn có nghĩ rằng nó tạo ra bất kỳ sự khác biệt nào nếu giá trị được lưu trữ trong một uint8 hoặc uint32 ngay trước khi nó được in? –
Tất cả phụ thuộc vào cách bạn in giá trị. Đối với cout, hãy thử cout << (long unsigned int)var;
và đối với printf
, bạn có thể thử sử dụng thông số định dạng %lu
. Tuy nhiên, như chúng tôi đã đề cập, uint8
có thể được xác định hoặc đã gõ như một thứ khác, vì đó không phải là loại ISO C++. Cũng có khả năng là uint8
được gõ vào unsigned long int
(chung), hoặc unsigned __int64
(nền tảng MS cụ thể), và trình biên dịch MSVC++ chỉ thực hiện chuyển đổi ngầm không đúng. Nếu không biết những gì uint8
được định nghĩa là, rất khó để nói.
uint8 đang được sử dụng trực tiếp ....> typedef uint8 _UINT1; Trong bình luận, nó nói 1 số nguyên byte (Làm thế nào để tôi đặt một khối màu xám xung quanh mã?) – aks
Vâng, sau đó '_UIN1;' có thể được định nghĩa là một cái gì đó khác, quá. Bạn sẽ phải làm theo typedef's cho đến khi bạn nhấn vào kiểu nội tại (mặc dù, '_UINT1' dường như ngụ ý một char chưa ký, không phải là số 64 bit). Ngoài ra, bạn có thể chỉ định văn bản dưới dạng mã (ví dụ: "hộp màu xám") bằng cách bao bọc văn bản trong các ký tự trích dẫn sau. – Javert93
typedef uint8 _UINT1; định nghĩa _UINT1 làm bí danh cho uint8, không phải là cách khác xung quanh. Vì vậy, bạn sẽ phải tìm một typedef XXX uint8; khai báo để biết uint8 là gì. Hoặc bạn chỉ có thể tin tưởng tôi rằng nó là một số nguyên không dấu 8 bit, và là một bí danh cho unsigned char :) [u] intN [_t] loại luôn biểu thị các số nguyên N-bit, không phải số nguyên N-byte. – usta
- 1. C++: Hiển thị các ký tự
- 2. UTF-8 html không có BOM hiển thị các ký tự lạ
- 3. Cách hiển thị các ký tự japanese trong JTextArea
- 4. HTML với các nhân vật Hebrew hiển thị lạ
- 5. Ký tự gạch ngang lạ trong PHP
- 6. Nhãn không hiển thị ký tự "_"
- 7. Hiển thị các ký tự ẩn trong NSTextView
- 8. Hiển thị các ký tự unicode trong TextView Android
- 9. Hiển thị các phương trình lạ mắt với Java
- 10. hiển thị hình ảnh lạ lộng lẫy
- 11. Xóa các ký tự lạ khỏi dữ liệu MySQL
- 12. Cơ sở dữ liệu MySQL PHP Các ký tự lạ
- 13. UTF-8 ký tự đặc biệt không hiển thị
- 14. Làm cách nào để hiển thị đúng các ký tự tiếng Trung trong PHP?
- 15. ký tự Unicode không hiển thị trong System.Windows.Forms.TextBox
- 16. Ký tự '°' độ không hiển thị trong hàm php json_encode, cách hiển thị?
- 17. Không hiển thị^M ký tự có emacs
- 18. SSRS cách hiển thị ký tự thoát HTML
- 19. Chỉ hiển thị 10 ký tự của một chuỗi dài?
- 20. ^M Ký tự hiển thị trong clojure slime-repl
- 21. Ngăn hiển thị các ký tự đã nhập (như tắt thuộc tính "echo" trong các từ)
- 22. Làm cách nào để hiển thị tất cả các từ chứa các ký tự này?
- 23. AFNetworking/NSURLConnection HTTPS tiếp tục hiển thị hành vi lạ
- 24. Chrome SVG webfonts các ký tự lạ trong đầu vào được chọn
- 25. Lỗi lạ: Không thể hiển thị đa giác
- 26. Hiển thị các ký tự đặc biệt khi sử dụng lệnh in
- 27. đường ray, đá quý wicked-pdf và các ký tự hiển thị không chính xác
- 28. Tùy chọn để hiển thị các ký tự điều khiển trong gedit
- 29. iText để tạo PDF với các ký tự tiếng Trung, nhưng không được hiển thị
- 30. Sự cố khi hiển thị các ký tự tiếng Nhật bằng PHP và MySQL
đăng mã của bạn. – tenfour
Tôi đang sử dụng thư viện từ nhà cung cấp..nó trả về kiểu uint8 – aks
Bạn đang cố in nó dưới dạng chuỗi bằng cách sử dụng định dạng '% s'? Thay vào đó, hãy thử in các ký tự riêng lẻ. – dirkgently