Trình biên dịch và gỡ lỗi C++ online

Viết, biên dịch, chạy và debug C++ online với breakpoint, xem biến và chạy từng bước bằng GDB trong Server mode.

Thư viện cài đặt sẵn
🚀 2,393,685 tổng số lượt thực thi (1,311 trong tháng này)
Kết quả

Luyện C++ với thử thách lập trình

Giải các bài tập thực tế ngay trên trình soạn thảo này: chạy kiểm thử mẫu, nộp bài và nhận đánh giá code từ AI.

Tất cả thử thách C++
Dễ

Trung Bình Của Ba Số

Tính trung bình cộng của ba số nguyên.

Bạn sẽ học Số họcPhép chia
BeginnerLearning-pathVariables
Dễ

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Bạn sẽ học Số họcGiá trị trả về
BeginnerLearning-pathVariables
Dễ

Ghép khách hàng và đơn hàng

Ghép khách hàng với đơn hàng giống LINQ Join và báo tổng chi tiêu của từng khách.

Bạn sẽ học LINQ JoinGom nhóm
ArraysSorting
Chưa có lời giải
Dễ

Danh sách việc cần làm

Quản lý danh sách công việc: thêm, đánh dấu xong, xóa và báo những việc còn lại.

Bạn sẽ học Collection có kiểuRecord
BeginnerSimulationStrings
Chưa có lời giải
Dễ

Thao tác với danh sách liên kết

Mô phỏng danh sách liên kết: thêm vào hai đầu, xóa ở đầu hoặc theo giá trị, và đảo ngược.

Bạn sẽ học Danh sách liên kếtMô phỏng
Data-structuresSimulation
Chưa có lời giải
Dễ

Cộng các số trong đối tượng JSON phẳng

Phân tích một đối tượng JSON phẳng có các giá trị là số nguyên và cộng các giá trị đó lại.

Bạn sẽ học Phân tích JSONTách chuỗi
ParsingStrings
Chưa có lời giải
Dễ

Tổng thời gian với WhenAll

Tìm chương trình mất bao lâu khi mỗi nhóm tác vụ chạy cùng nhau bằng Task.WhenAll và các nhóm chạy lần lượt.

Bạn sẽ học Async/awaitTask.WhenAll
ArraysBeginner
Chưa có lời giải
Trung bình

Thứ tự hoàn thành tác vụ song song

Chạy các task đồng thời với tối đa k task cùng lúc và báo cáo thứ tự chúng hoàn thành.

Bạn sẽ học Đồng thờiHàng đợi ưu tiên
SimulationSorting
Chưa có lời giải
Trung bình

Ngăn xếp với giá trị nhỏ nhất

Xây dựng một stack có thể báo cáo phần tử nhỏ nhất của nó ngay lập tức sau bất kỳ lần push hoặc pop nào.

Bạn sẽ học Ngăn xếpGiá trị nhỏ nhất
Data-structuresStacks
Chưa có lời giải
Dễ

Bản ghi không trùng lặp

Xóa các bản ghi trùng nhau theo giá trị, giữ lại bản ghi đầu tiên của mỗi giá trị theo đúng thứ tự.

Bạn sẽ học RecordSo sánh theo giá trị
BeginnerStrings
Chưa có lời giải
Dễ

Sắp xếp theo khóa được chọn

Sắp xếp mọi người theo tên hoặc theo tuổi bằng một comparer được chọn khi chạy, đồng thời phá vỡ các trường hợp bằng nhau một cách nhất quán.

Bạn sẽ học ComparerSắp xếp
ArraysSorting
Chưa có lời giải
Trung bình

Bảng lương hàng tuần

Tính tổng lương một tuần cho nhân viên lương cố định, theo giờ và hoa hồng, mỗi loại theo quy tắc riêng.

Bạn sẽ học Đa hìnhTính giờ làm thêm
ParsingSimulationmath
Chưa có lời giải

💻 Giới thiệu về Trình chạy C++ trực tuyến này

Trình chạy C++ CodeUtility cho phép bạn viết và chạy mã C++ trực tiếp trên trình duyệt - không cần cài đặt hay thiết lập trình biên dịch. Công cụ này sử dụng một sandbox an toàn hỗ trợ các tiêu chuẩn C++ từ C++11, C++14, C++17, cho đến phiên bản mới nhất.

Công cụ này dùng trình biên dịch C++ thực chạy trên đám mây để biên dịch và thực thi mã của bạn, đảm bảo hành vi chính xác và nhất quán giữa các phiên bản. Bạn có thể thoải mái thử nghiệm các khái niệm cốt lõi của C++ như biến, hàm, vòng lặp, cấu trúc điều kiện, và lập trình hướng đối tượng.

Dù bạn đang chuẩn bị phỏng vấn, học các tính năng C++ hiện đại, hay kiểm chứng logic thuật toán, Trình chạy C++ của CodeUtility mang đến môi trường đơn giản nhưng mạnh mẽ để chạy mã ngay lập tức trên mọi thiết bị.

Không chỉ là công cụ chạy mã

Sử dụng trình soạn thảo nhiều tệp, terminal thực thi biệt lập, thư viện riêng theo môi trường chạy, không gian làm việc lâu dài, tính năng chia sẻ và cộng tác theo thời gian thực ngay trong cùng một trình thực thi.

Cách sử dụng trình thực thi này?

Chọn môi trường chạy, mở hoặc tạo tệp, viết mã rồi nhấn Chạy. Kết quả xuất hiện trong terminal; người dùng đã đăng nhập có thể lưu tệp trong không gian làm việc, cài thư viện và cộng tác qua liên kết chia sẻ.

  1. Chọn phiên bản rồi chỉnh sửa tệp hiện tại hoặc mở một tệp khác trong không gian làm việc.
  2. Chạy mã, nhập dữ liệu trong terminal khi được yêu cầu và xem lại lịch sử chạy đã lưu.
  3. Sử dụng thư viện, công cụ không gian làm việc, chia sẻ và trò chuyện khi tác vụ cần nhiều hơn một đoạn mã.

💡 Cơ bản về C++ & các ví dụ bạn có thể thử ở trên

1. Khai báo biến và hằng số

C++ yêu cầu bạn khai báo kiểu của từng biến. Dùng const để định nghĩa giá trị chỉ đọc, không thể thay đổi sau khi khởi tạo.

int age = 30;
double pi = 3.14159;
char grade = 'A';
std::string name = "Alice";
bool isActive = true;

// Hằng số
const int MAX_USERS = 100;
const std::string COMPANY = "CodeUtility";

// Cố gắng sửa một const sẽ gây lỗi khi biên dịch
// MAX_USERS = 200; // ❌ lỗi

2. Cấu trúc điều kiện (if / switch)

Dùng if, else if, else để rẽ nhánh. Dùng switch cho nhiều giá trị.

int x = 2;
if (x == 1) {
    std::cout << "Một\n";
} else if (x == 2) {
    std::cout << "Hai\n";
} else {
    std::cout << "Khác\n";
}

// Switch-case
switch (x) {
    case 1:
        std::cout << "Một\n";
        break;
    case 2:
        std::cout << "Hai\n";
        break;
    default:
        std::cout << "Khác\n";
}

3. Vòng lặp

Dùng for, while, và do-while để lặp các khối mã.

for (int i = 0; i < 3; i++) {
    std::cout << i << "\n";
}

int n = 3;
while (n > 0) {
    std::cout << n << "\n";
    n--;
}

4. Mảng

Mảng lưu nhiều phần tử cùng kiểu.

int numbers[3] = {10, 20, 30};
std::cout << numbers[1] << "\n";

5. Thao tác Mảng/Vector

Dùng std::vector cho mảng động.

#include <vector>

std::vector nums = {1, 2, 3};
nums.push_back(4);
nums.pop_back();

for (int n : nums) {
    std::cout << n << " ";
}

6. Nhập/Xuất console

Dùng std::cin để nhập và std::cout để xuất.

std::string name;
std::cout << "Nhập tên của bạn: ";
std::cin >> name;
std::cout << "Xin chào, " << name << "\n";

7. Hàm

Hàm nhóm logic có thể tái sử dụng. Dùng tham số và kiểu trả về.

int add(int a, int b) {
    return a + b;
}

std::cout << add(3, 4);

8. Map

std::map lưu các cặp khóa-giá trị giống như từ điển.

#include <map>

std::map ages;
ages["Alice"] = 30;
std::cout << ages["Alice"];

9. Xử lý ngoại lệ

Dùng try và catch để xử lý lỗi lúc chạy.

try {
    throw std::runtime_error("Đã xảy ra lỗi");
} catch (const std::exception& e) {
    std::cout << e.what();
}

10. I/O Tệp

Dùng fstream để đọc và ghi tệp.

#include <fstream>

std::ofstream out("file.txt");
out << "Xin chào tệp";
out.close();

std::ifstream in("file.txt");
std::string line;
getline(in, line);
std::cout << line;
in.close();

11. Xử lý chuỗi

Chuỗi trong C++ hỗ trợ các phương thức như length(), substr(), và find().

std::string text = "Xin chào Thế giới";
std::cout << text.length();
std::cout << text.substr(0, 5);
std::cout << text.find("Thế giới");

12. Lớp & Đối tượng

C++ hỗ trợ lập trình hướng đối tượng thông qua các lớp.

class Person {
  public:
    std::string name;
    Person(std::string n) : name(n) {}
    void greet() { std::cout << "Xin chào, tôi là " << name; }
};

Person p("Alice");
p.greet();

13. Con trỏ

Con trỏ lưu địa chỉ bộ nhớ của một biến khác. Dùng & để lấy địa chỉ, và * để giải tham chiếu (truy cập giá trị tại địa chỉ đó).

int x = 10;
int* ptr = &x;

std::cout << "Giá trị của x: " << x << "\n";
std::cout << "Địa chỉ của x: " << ptr << "\n";
std::cout << "Giá trị từ con trỏ: " << *ptr << "\n";

// Sửa x thông qua con trỏ
*ptr = 20;
std::cout << "x đã được cập nhật: " << x << "\n";

🐞 Cách gỡ lỗi code %{language} online

Dùng trình debug %{language} online để tìm lỗi runtime và logic mà không cần cài compiler hoặc IDE. Server mode biên dịch kèm debug symbols và chạy chương trình bằng GDB.

  1. Đặt một hoặc nhiều breakpoint cạnh số dòng.
  2. Chọn Debug để biên dịch và dừng tại breakpoint đầu tiên phù hợp.
  3. Kiểm tra dòng hiện tại, call stack và các biến.
  4. Dùng Continue, Step Over, Step Into hoặc Step Out.
  5. Chọn Stop để kết thúc phiên debug.

Bắt đầu với ví dụ nhỏ có thể tái hiện lỗi và đặt breakpoint ngay trước khi giá trị hoặc luồng điều khiển trở nên bất thường.