কম্পিউটার

C/C++ এ ত্রুটি


C বা C++ এ, আমরা বিভিন্ন ধরনের ত্রুটির সম্মুখীন হই। এই ত্রুটিগুলি পাঁচটি ভিন্ন প্রকারে শ্রেণীবদ্ধ করা যেতে পারে। এগুলো নিচের মত -

  • সিনট্যাক্স ত্রুটি
  • রান-টাইম ত্রুটি
  • লিঙ্কার ত্রুটি
  • যৌক্তিক ত্রুটি
  • অর্থবোধক ত্রুটি

আসুন এক এক করে এই ত্রুটিগুলি দেখি -

সিনট্যাক্স ত্রুটি

এই ধরনের ত্রুটি ঘটে, যখন এটি C++ লেখার কৌশল বা বাক্য গঠনের নিয়ম লঙ্ঘন করে। এই ধরনের ত্রুটিগুলি সাধারণত সংকলনের আগে কম্পাইলার দ্বারা নির্দেশিত হয়। কখনও কখনও এগুলি কম্পাইল টাইম এরর হিসাবে পরিচিত।

এই উদাহরণে, আমরা এক লাইনের পরে সেমিকোলন না রাখলে কিভাবে সিনট্যাক্স ত্রুটি পেতে হয় তা দেখব।

উদাহরণ

#include<stdio.h>
main() {
   printf("Hello World")
}

আউটপুট

Error] expected ';' before '}' token

রানটাইম ত্রুটি

প্রোগ্রামটি কার্যকর করার সময় এই ধরনের ত্রুটি দেখা দেয়। যেহেতু এটি সংকলন ত্রুটি নয়, তাই সংকলনটি সফলভাবে সম্পন্ন হবে। যদি আমরা একটি সংখ্যাকে 0 দিয়ে ভাগ করার চেষ্টা করি তবে আমরা এই ত্রুটিটি পরীক্ষা করতে পারি।

উদাহরণ

#include<stdio.h>
main() {
   int x = 52;
   int y = 0;
   printf("Div : %f", x/y);
}

আউটপুট

Program crashes during runtime.

লিঙ্কার ত্রুটি

প্রোগ্রামটি সফলভাবে কম্পাইল করা হলে এবং মূল অবজেক্ট ফাইলের সাথে বিভিন্ন অবজেক্ট ফাইল লিঙ্ক করার চেষ্টা করলে এই ধরনের ত্রুটি দেখা দেয়। যখন এই ত্রুটিটি ঘটে, তখন এক্সিকিউটেবল জেনারেট হয় না, যেমন কিছু ভুল ফাংশন প্রোটোটাইপিং, ভুল হেডার ফাইল ইত্যাদি। যদি main() Main() হিসাবে লেখা হয় তবে এটি লিঙ্কড ত্রুটি তৈরি করবে।

উদাহরণ

#include<stdio.h>
main() {
   int x = 52;
   int y = 0;
   printf("Div : %f", x/y);
}

আউটপুট

C:\crossdev\src\mingw-w64-v3-git\mingw-w64-crt\crt\crt0_c.cundefined reference to `WinMain'

যৌক্তিক ত্রুটি

কখনও কখনও, আমরা পছন্দসই আউটপুট পেতে পারি না। যদি সিনট্যাক্স এবং অন্যান্য জিনিসগুলি সঠিক হয়, তবে কিছু যৌক্তিক সমস্যার কারণে আমরা সঠিক আউটপুট নাও পেতে পারি। এগুলোকে যৌক্তিক ত্রুটি বলা হয়। কখনও কখনও, আমরা একটি লুপের পরে একটি সেমিকোলন রাখি, এটি সিনট্যাক্টিকভাবে সঠিক, তবে একটি ফাঁকা লুপ তৈরি করবে। সেই ক্ষেত্রে, এটি পছন্দসই আউটপুট দেখাবে৷

উদাহরণ

#include<stdio.h>
main() {
   int i;
   for(i = 0; i<5; i++); {
      printf("Hello World");
   }
}

আউটপুট

Here we want the line will be printed five times. But only one time it will be printed for the block of code.

অর্থবোধক ত্রুটি

এই ধরনের ত্রুটি ঘটে যখন এটি সিনট্যাক্টিক্যালি সঠিক কিন্তু কোন অর্থ নেই। এটি ব্যাকরণগত ভুলের মতো। যদি অ্যাসাইনমেন্ট অপারেটরের বাম দিকে কিছু অভিব্যক্তি দেওয়া হয়, তাহলে এটি শব্দার্থগত ত্রুটি তৈরি করতে পারে।

উদাহরণ

#include<stdio.h>

main() {
   int x, y, z;
   x = 10;
   y = 20;
   x + y = z;
}

আউটপুট

[Error] lvalue required as left operand of assignment

  1. C/C++ এ putwchar() ফাংশন

  2. C/C++ এ memcpy()

  3. C/C++ এ AA গাছ?

  4. উইন্ডোতে c++ এর জন্য শীর্ষ IDE কি?