ऑनलाइन C++ कंपाइलर और डीबगर

सर्वर मोड GDB में ब्रेकपॉइंट, वेरिएबल और स्टेप कंट्रोल के साथ C++ डीबग करें।

पहले से इंस्टॉल लाइब्रेरी
🚀 2,389,304 कुल निष्पादन (97,909 इस महीने)
आउटपुट

कोडिंग चैलेंज के साथ C++ का अभ्यास करें

सीधे इस एडिटर में प्रैक्टिकल समस्याएँ हल करें: सैंपल टेस्ट चलाएँ, सबमिट करें, और AI कोड रिव्यू पाएं।

सभी C++ चैलेंज
आसान

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

BeginnerLearning-pathVariables
कठिन

Course Schedule Order

Order courses so every prerequisite comes first.

AdvancedGraphsHackathonTopological-sort
अभी तक कोई समाधान नहीं
मध्यम

Island Perimeter

Measure the coastline of land cells in a grid.

AdvancedGridsHackathon
अभी तक कोई समाधान नहीं
मध्यम

K-th Smallest Element

Find the k-th smallest value without fully sorting.

AdvancedCompetitive-programmingSorting
अभी तक कोई समाधान नहीं
कठिन

Median of Two Sorted Arrays

Find the median of two sorted lists combined.

AdvancedBinary-searchCompetitive-programming
अभी तक कोई समाधान नहीं
मध्यम

Game of Life Step

Advance Conway's Game of Life by one generation.

AdvancedGridsHackathonSimulation
अभी तक कोई समाधान नहीं
कठिन

Shortest Delivery Tour

Visit every city once and return home as cheaply as possible.

AdvancedBitmasksCompetitive-programmingDynamic-programming
अभी तक कोई समाधान नहीं
कठिन

Strongly Connected Components

Count groups of nodes that can all reach each other.

AdvancedCompetitive-programmingGraphs
अभी तक कोई समाधान नहीं
कठिन

Longest Path in a DAG

Find the heaviest path in a task dependency graph.

AdvancedGraphsHackathonTopological-sort
अभी तक कोई समाधान नहीं
कठिन

मैट्रिक्स चेन गुणा

मैट्रिक्सों की एक श्रृंखला को गुणा करने का सबसे सस्ता क्रम खोजें।

AdvancedCompetitive-programmingDynamic-programming
अभी तक कोई समाधान नहीं
कठिन

Minimum Window Substring

Find the shortest piece of text containing all required characters.

AdvancedCompetitive-programmingSliding-windowStrings
अभी तक कोई समाधान नहीं
कठिन

Word Break

Decide whether text can be split into dictionary words.

AdvancedDynamic-programmingHackathonStrings
अभी तक कोई समाधान नहीं

विषय के अनुसार देखें

Practical code, output, memory model, data structures, algorithms और modern C++ के साथ दोनों भाषाएँ साथ सीखें।

C/C++ उदाहरण →

💻 इस C++ ऑनलाइन एक्जीक्यूटर के बारे में

CodeUtility C++ Executor आपको ब्राउज़र में ही C++ कोड लिखने और चलाने देता है - कोई इंस्टॉलेशन या कंपाइलर सेटअप की जरूरत नहीं। यह एक सुरक्षित सैंडबॉक्स द्वारा संचालित है जो असली C++ मानकों C++11, C++14, C++17 से लेकर नवीनतम संस्करण तक सपोर्ट करता है।

यह टूल क्लाउड में चल रहे असली C++ कंपाइलर का उपयोग करके आपके कोड को कंपाइल और रन करता है, जिससे अलग-अलग संस्करणों में सटीक और एकसमान व्यवहार सुनिश्चित होता है। आप C++ की मूल अवधारणाओं जैसे variables, functions, loops, conditionals, और object-oriented programming के साथ बेझिझक प्रयोग कर सकते हैं।

चाहे आप इंटरव्यू की तैयारी कर रहे हों, आधुनिक C++ फीचर्स सीख रहे हों, या किसी एल्गोरिदम के लॉजिक को परखना चाहते हों, CodeUtility C++ Executor किसी भी डिवाइस से तुरंत कोड चलाने के लिए एक सरल लेकिन शक्तिशाली वातावरण प्रदान करता है।

सिर्फ़ एक कोड रनर से कहीं अधिक

एक ही एक्ज़ीक्यूटर में मल्टी-फ़ाइल एडिटर, अलग-थलग निष्पादन टर्मिनल, रनटाइम-विशिष्ट लाइब्रेरी, स्थायी वर्कस्पेस, साझाकरण और रीयल-टाइम सहयोग का उपयोग करें।

इस एक्ज़ीक्यूटर का उपयोग कैसे करें?

रनटाइम चुनें, फ़ाइल खोलें या बनाएँ, अपना कोड लिखें और चलाएँ चुनें। आउटपुट टर्मिनल में दिखाई देता है। साइन-इन उपयोगकर्ता वर्कस्पेस में फ़ाइलें रख सकते हैं, लाइब्रेरी इंस्टॉल कर सकते हैं और शेयर के माध्यम से सहयोग कर सकते हैं।

  1. एक संस्करण चुनें और वर्तमान फ़ाइल संपादित करें या वर्कस्पेस की दूसरी फ़ाइल खोलें।
  2. कोड चलाएँ, माँगे जाने पर टर्मिनल में इनपुट दें और सहेजा गया रन इतिहास देखें।
  3. जब कार्य के लिए एक से अधिक कोड अंश चाहिए, तो लाइब्रेरी, वर्कस्पेस टूल, शेयरिंग और चैट का उपयोग करें।

💡 C++ की बुनियादी बातें और उदाहरण जिन्हें आप ऊपर आज़मा सकते हैं

1. वेरिएबल्स और कॉन्स्टेंट्स घोषित करना

C++ में हर वेरिएबल का टाइप घोषित करना जरूरी है। ऐसे मान परिभाषित करने के लिए const का उपयोग करें जिन्हें initialization के बाद बदला नहीं जा सकता।

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

// कॉन्स्टेंट्स
const int MAX_USERS = 100;
const std::string COMPANY = "CodeUtility";

// const को बदलने की कोशिश करने पर compile-time त्रुटि होगी
// MAX_USERS = 200; // ❌ त्रुटि

2. शर्तें (if / switch)

ब्रांचिंग के लिए if, else if, else का उपयोग करें। कई मानों के लिए switch का उपयोग करें।

int x = 2;
if (x == 1) {
    std::cout << "एक\n";
} else if (x == 2) {
    std::cout << "दो\n";
} else {
    std::cout << "अन्य\n";
}

// स्विच-केस
switch (x) {
    case 1:
        std::cout << "एक\n";
        break;
    case 2:
        std::cout << "दो\n";
        break;
    default:
        std::cout << "अन्य\n";
}

3. लूप्स

for, while, और do-while का उपयोग कोड ब्लॉक को दोहराने के लिए करें।

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

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

4. ऐरे

ऐरे एक ही प्रकार के कई एलिमेंट्स स्टोर करते हैं।

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

5. ऐरे/वेक्टर मैनिपुलेशन

डायनेमिक ऐरे के लिए std::vector का उपयोग करें।

#include <vector>

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

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

6. कंसोल इनपुट/आउटपुट

इनपुट के लिए std::cin और आउटपुट के लिए std::cout का उपयोग करें।

std::string name;
std::cout << "अपना नाम दर्ज करें: ";
std::cin >> name;
std::cout << "नमस्ते, " << name << "\n";

7. फ़ंक्शन्स

फ़ंक्शन्स पुन: प्रयोज्य लॉजिक को समूहित करते हैं। पैरामीटर्स और रिटर्न टाइप्स का उपयोग करें।

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

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

8. मैप्स

std::map डिक्शनरी की तरह कुंजी-मूल्य जोड़े स्टोर करता है।

#include <map>

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

9. एक्सेप्शन हैंडलिंग

रनटाइम त्रुटियों को संभालने के लिए try और catch का उपयोग करें।

try {
    throw std::runtime_error("त्रुटि हुई");
} catch (const std::exception& e) {
    std::cout << e.what();
}

10. फ़ाइल I/O

फ़ाइलों से पढ़ने और लिखने के लिए fstream का उपयोग करें।

#include <fstream>

std::ofstream out("file.txt");
out << "नमस्ते फ़ाइल";
out.close();

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

11. स्ट्रिंग मैनिपुलेशन

C++ स्ट्रिंग्स length(), substr(), और find() जैसी मेथड्स सपोर्ट करती हैं।

std::string text = "Hello World";
std::cout << text.length();
std::cout << text.substr(0, 5);
std::cout << text.find("World");

12. क्लासेस और ऑब्जेक्ट्स

C++ क्लासेस के माध्यम से ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सपोर्ट करता है।

class Person {
  public:
    std::string name;
    Person(std::string n) : name(n) {}
    void greet() { std::cout << "नमस्ते, मैं " << name; }
};

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

13. पॉइंटर्स

एक पॉइंटर किसी दूसरे वेरिएबल के मेमोरी ऐड्रेस को स्टोर करता है। ऐड्रेस पाने के लिए & का उपयोग करें, और उस ऐड्रेस पर मौजूद मान तक पहुँचने के लिए * (डिरेफरेंस) करें।

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

std::cout << "x का मान: " << x << "\n";
std::cout << "x का ऐड्रेस: " << ptr << "\n";
std::cout << "पॉइंटर से मान: " << *ptr << "\n";

// पॉइंटर के जरिए x को बदलें
*ptr = 20;
std::cout << "अपडेटेड x: " << x << "\n";

🐞 %{language} कोड ऑनलाइन डीबग कैसे करें

ऑनलाइन %{language} डीबगर से कंपाइलर या IDE इंस्टॉल किए बिना रनटाइम और लॉजिक त्रुटियाँ खोजें। सर्वर मोड debug symbols के साथ कंपाइल करता है और प्रोग्राम को GDB में चलाता है।

  1. लाइन नंबर के पास ब्रेकपॉइंट लगाएँ।
  2. कंपाइल करके पहले ब्रेकपॉइंट पर रुकने के लिए Debug चुनें।
  3. वर्तमान लाइन, call stack और वेरिएबल देखें।
  4. Continue, Step Over, Step Into या Step Out उपयोग करें।
  5. सत्र समाप्त करने के लिए Stop चुनें।

एक छोटे दोहराए जा सकने वाले उदाहरण से शुरू करें और अनपेक्षित व्यवहार से ठीक पहले ब्रेकपॉइंट लगाएँ।