সিস্টেম ( "বিরতি দিন"); - কেন এটা ভুল?


131

এখানে একটি প্রশ্ন যা আমি বেশ বুঝতে পারি না:

কমান্ডটি, system("pause");নতুন প্রোগ্রামারগুলিকে প্রোগ্রামটি বিরতি দেওয়ার এবং কীবোর্ডের ইনপুটটি চালিয়ে যাওয়ার জন্য অপেক্ষা করে শেখানো হয়। যাইহোক, এটি অনেক অভিজ্ঞ প্রোগ্রামাররা এমন কিছু হিসাবে উদ্ভট বলে মনে হচ্ছে যা বিভিন্ন ডিগ্রিতে করা উচিত নয়।

কিছু লোক বলেছেন এটি ব্যবহার করা ভাল। কেউ কেউ বলেন যে এটি কেবল তখনই ব্যবহার করা হয় যখন আপনি আপনার ঘরে লক হয়ে থাকেন এবং কেউ দেখছেন না। কেউ কেউ বলে যে তারা ব্যক্তিগতভাবে আপনার বাড়িতে আসবে এবং আপনি যদি এটি ব্যবহার করেন তবে আপনাকে হত্যা করবে।

আমি নিজেই একটি নতুন প্রোগ্রামার, যার কোনও আনুষ্ঠানিক প্রোগ্রামিং প্রশিক্ষণ নেই। আমি এটি ব্যবহার করি কারণ এটি ব্যবহার করতে শেখানো হয়েছিল। আমি যা বুঝতে পারি না তা যদি এটি ব্যবহার করার মতো কিছু না হয় তবে আমাকে কেন এটি ব্যবহার করতে শেখানো হয়েছিল? বা, উল্টো দিকে, আসলেই কি এত খারাপ হয় না?

এই বিষয়ে আপনার মতামত কি?



5
স্পষ্টতই লোকেরা তাদের কলগুলি বিরতিতে পছন্দ করে সত্যিকারের দক্ষ হতে। অন্য কথায়, "তাড়াতাড়ি করে থামো!"
লি লুভিয়ের

63
আপনি এটা শেখানো হয় কারণ সাধারণত শিক্ষক খারাপ প্রোগ্রামারদের হয়
কোনটা

ভাল প্রশ্ন জিজ্ঞাসা করার জন্য দয়া করে এই পরামর্শটি পড়ুন: [ কীভাবে জিজ্ঞাসা করবেন ], [নিখুঁত প্রশ্ন লেখা ]।
আদি ইনবার

9
@ সম্পূর্ণরূপে বাজে।
মাইকেল চৌর্দাকিস 18:58

উত্তর:


85

এটি উদ্দীপ্ত হয়েছে কারণ এটি একটি প্ল্যাটফর্ম-নির্দিষ্ট হ্যাক যার আসলে প্রোগ্রামিং শেখার সাথে কোনও সম্পর্ক নেই, বরং আইডিই / ওএসের কোনও বৈশিষ্ট্য সন্ধান করার জন্য - ভিজ্যুয়াল স্টুডিও থেকে চালু হওয়া কনসোল উইন্ডোটি প্রোগ্রামটি শেষ হয়ে গেলে বন্ধ হয়, এবং তাই নতুন ব্যবহারকারী তার নতুন প্রোগ্রামটির আউটপুট দেখতে পাবে না।

সিস্টেমে বোডিং ("বিরতি") উইন্ডোজ কমান্ড-লাইন "বিরতি" প্রোগ্রামটি চালায় এবং প্রোগ্রামটির সঞ্চালন অব্যাহত রাখার আগে এটি সমাপ্ত হওয়ার জন্য অপেক্ষা করে - কনসোল উইন্ডোটি খোলা থাকে যাতে আপনি আউটপুটটি পড়তে পারেন।

আরও ভাল ধারণাটি হ'ল শেষে একটি ব্রেকপয়েন্ট স্থাপন করা এবং এটি ডিবাগ করা, তবে এতে আবার সমস্যা রয়েছে।


6
ভিজ্যুয়াল স্টুডিও দুটি মোডে প্রোগ্রামটি চালাতে পারে: ডিবাগ করা বা ছাড়াই। ডিবাগিং মোডে চলাকালীন এটি প্রথম ব্রেক পয়েন্টে থামবে। আপনার যদি কোনও সংজ্ঞায়িত না থাকে তবে এটি প্রোগ্রামটি পরিচালনা করবে এবং কনসোলটি বন্ধ করবে। সুতরাং, আপনি যদি কনসোল প্রোগ্রামটি থামতে চান, কেবল একটি ব্রেক-পয়েন্ট নির্ধারণ করুন, বা আরও ভাল, ডিবাগিং ছাড়াই এটি চালান! এটি প্রোগ্রামটি কার্যকর করবে এবং কনসোলটি বন্ধ করবে।
ইভান ম্যাসিক

এটি কেবল ভিজ্যুয়াল স্টুডিওর বৈশিষ্ট্যই নয় - আপনি যদি উইন্ডোজ থেকে কোনও কনসোল প্রোগ্রাম চালান (যেমন একটি কমান্ড প্রম্পট লোড করা এবং সেখান থেকে এটি চালনার বিপরীতে), এটি কার্যকর হয়ে গেলে এটি বন্ধ হয়ে যাবে।
জেবেন্টলে

2
Re1 পুনরায় "ভিজ্যুয়াল স্টুডিও থেকে প্রবর্তিত কনসোল উইন্ডোটি যখন প্রোগ্রামটি সম্পাদন শেষ করে" বন্ধ হবে ", না, কেবলমাত্র প্রোগ্রামটি ডিবাগারে চালিত হওয়ার জন্য। পুনরায় "উইন্ডোজ কমান্ড-লাইন" বিরতি "প্রোগ্রাম চালায়", তেমন কোনও নেই ( pauseঅভ্যন্তরীণ কমান্ডটি এতে রয়েছে cmd.exe)। উন্নত ধারণার তালিকায়ও মারাত্মক অভাব রয়েছে।
চিয়ার্স এবং এইচটিএইচ - আলফ

আমি মনে করি যে এই উত্তরটি কেবলমাত্র এই দিকটি স্পর্শ করে যে এটি একটি কার্যতালিকা। এটি নির্দিষ্ট নির্বাহ পরিবেশের আচরণের চারপাশে কাজ করে যা আপনি প্রোগ্রামের আউটপুটটি পড়ার আগে টার্মিনাল উইন্ডোটি বন্ধ করে দেয়। আপনার যা করা উচিত তা হ'ল পরিবেশটি ঠিক করা। যদি এটি সম্পন্ন না করা যায় তবে এই কাজটি ব্যবহার করুন, সম্ভবত যদি IsDebuggerPresent()সত্যটি প্রত্যাবর্তন হয় এবং সঠিকভাবে এই workaround ডকুমেন্ট করা হয় ("এই কোডটি এখানে কেন?")।
উলিখ একার্ড্ট

43

এটা ধীরগতির. এটি প্ল্যাটফর্ম নির্ভর। এটি অনিরাপদ।

প্রথম: এটি কি করে। "সিস্টেম" কল করা আক্ষরিকভাবে উইন্ডোজ কমান্ড প্রম্পটে একটি কমান্ড টাইপের মতো। এই জাতীয় কল করার জন্য আপনার অ্যাপ্লিকেশনটির জন্য এক টন সেটআপ এবং টিয়ারডাউন রয়েছে - এবং ওভারহেড কেবল হাস্যকর।

"বিরাম" নামক একটি প্রোগ্রাম যদি ব্যবহারকারীর PATH এ স্থাপন করা হয়? কেবল কলিং সিস্টেম ("বিরতি") কেবলমাত্র গ্যারান্টি দেয় যে "বিরতি" নামক একটি প্রোগ্রাম কার্যকর করা হয়েছে (আশা করি আপনার "বিরতি" নামক এক্সিকিউটেবলটি নেই!)

কেবল আপনার নিজের "বিরতি ()" ফাংশনটি লিখুন যা _গ্যাচ ব্যবহার করে। ঠিক আছে, অবশ্যই, _গ্যাচও প্ল্যাটফর্ম নির্ভরশীল (দ্রষ্টব্য: এটি "conio.h" এ সংজ্ঞায়িত করা হয়েছে) - তবে এটি system()আপনি উইন্ডোতে বিকাশ করছেন এবং এর একই প্রভাব রয়েছে তার চেয়ে অনেক সুন্দর (যদিও পাঠ্য সরবরাহ করা আপনার দায়িত্ব কাউট বা তাই সঙ্গে)।

মূলত: যখন আপনি কেবল দুটি লাইনের কোড যুক্ত করতে পারেন এবং একটিতে আরও নমনীয় প্রক্রিয়াটি অন্তর্ভুক্ত করতে পারেন তখন এতগুলি সম্ভাব্য সমস্যা কেন চালু করবেন?


61
প্ল্যাটফর্ম নির্ভরতা সম্পর্কে কারও জন্য অভিযোগ করা পরামর্শ দেওয়ার জন্য এটি অবশ্যই অদ্ভুত বলে মনে হচ্ছে _getch, বিশেষত যখন স্ট্যান্ডার্ড সি ++ সরবরাহ করে getchar
প্যাক্সিডিয়াবল

33
মানুষের সাথে মিথস্ক্রিয়া করার জন্য আমি ওভারহেড গণনা করতে কিছুটা
বিড়ম্বনা

1
@Spagpants: সম্ভবত আপনি একটি মানবিক থেকে ইনপুট পেয়ে, এবং ইমেজ এবং শব্দ উৎপাদিত মধ্যে পার্থক্য বুঝতে পারছি না একজন মানুষ।
yzt

1
@ চিয়ারসান্থ.-আলফ - এইচএম? যখন আমি এটি লিখেছিলাম, 8 বছর আগে, আমি সবেমাত্র 'সিস্টেম ("বিরতি") "দ্বারা সৃষ্ট একটি সমস্যা ডিবাগিং শেষ করেছি কারণ প্রকল্পটির নির্বাহযোগ্য নামটিকে" বিরতি "বলা হয়েছিল এবং এটি অসীম লুপে চলে যাবে। আমার বক্তব্যটি এখনও দাঁড়িয়ে আছে, আপনি কেন আমি ভুল বলেছিলেন তা নিশ্চিত নই।

2
@ প্যাক্সিডিয়াবলো গেচারের একটি ইনপুট প্রয়োজন এবং তারপরে এন্টার টিপুন। _গ্যাচের জন্য কী কী তা বিবেচনা না করে কেবল একটি কিপ্রেস প্রয়োজন। লিনাক্সে _গ্যাচ অনুকরণ করতে আপনার কনসোল মোড পরিবর্তন করতে 5-6 লাইন কোডের প্রয়োজন এবং এটি আবার ডিফল্টে পরিবর্তন করুন। এটি এক নয়, এটি বিভিন্ন জিনিস করে। getchar _getch এর প্রতিস্থাপন নয়।
বার্নাক 23

29
  • ধীর: এটিকে প্রচুর অপ্রয়োজনীয় উইন্ডোজ কোড এবং একটি সাধারণ ক্রিয়াকলাপের জন্য একটি পৃথক প্রোগ্রামের মধ্য দিয়ে যেতে হয়
  • বহনযোগ্য নয়: বিরতি প্রোগ্রামের উপর নির্ভরশীল
  • ভাল স্টাইল নয়: সিস্টেম কল করা কেবল তখনই করা উচিত যখন সত্যই প্রয়োজন হয়
  • আরও টাইপিং: সিস্টেম ("বিরতি") getchar () এর চেয়ে দীর্ঘ

একটি সরল গেচার () ঠিক করা উচিত।


26

system("pause");ইউজুড অনুশীলন ব্যবহার করা কারণ ™ কারণ

  • এটি সম্পূর্ণ অপ্রয়োজনীয়
    যখন আপনি ভিসুয়াল স্টুডিও, ব্যবহার থেকে এটি চালানোর শেষে প্রোগ্রামের কনসোল উইন্ডোটি খোলা রাখার জন্য Ctrl+ + F5গত ডান বক্রবন্ধনী একটি ব্রেকপয়েন্ট ডিবাগ ছাড়া এটি চালানোর জন্য, বা অন্য জায়গা }এর main। সুতরাং, ভিজ্যুয়াল স্টুডিওতে কোনও সমস্যা নেই। এবং অবশ্যই কোনও সমস্যা নেই যখন আপনি কমান্ড লাইন থেকে এটি চালাবেন।


  • আপনি কমান্ড লাইন থেকে প্রোগ্রামটি চালানোর সময় সমস্যাযুক্ত এবং বিরক্তিকর । ইন্টারেক্টিভ এক্সিকিউশন এর জন্য আপনাকে শেষে কোনও কী চাপতে হবে যা কোনও উদ্দেশ্য নয়। এবং কিছু টাস্কের অটোমেশন ব্যবহারের জন্য pauseযা খুব বেশি অনাকাঙ্ক্ষিত!

  • এটি বহনযোগ্য নয়।
    ইউনিক্স-জমির কোনও মানক pauseআদেশ নেই।

pauseকমান্ড একটি অভ্যন্তরীণ ব্যবহারের জন্য cmd.exeযেমন ভুল অন্তত এক অন্য উত্তরে দাবি করা হয়, কমান্ড উপেক্ষিত হতে পারে না। অর্থাৎ এটি কোনও সুরক্ষা ঝুঁকি নয়, এবং এভি প্রোগ্রামগুলি এটির মতো নির্ণয় করার দাবিটি কমান্ডকে ওভাররাইড করার দাবির মতো সন্দেহজনক (সর্বোপরি, একটি সি ++ প্রোগ্রাম প্রার্থনা systemকরছে যা কমান্ড ইন্টারপ্রেটার যা করতে পারে তা নিজেই করতে পারে এবং এবং আরো)। এছাড়াও, যদিও সি ++ প্রোগ্রামিংয়ের সাধারণ মানদণ্ডে এইভাবে বিরতি দেওয়ার পদ্ধতিটি অত্যন্ত অকার্যকর, তবে কোনও নবজাতকের প্রোগ্রামের শেষে এটি কোনও ব্যাপার নয়।

সুতরাং, এর আগে উত্তরগুলির অধীনে থাকা দাবীগুলি সঠিক নয় এবং আপনার শেষের দিকে আপনার system("pause") বা অন্য কোনও ওয়েট কমান্ড ব্যবহার করা উচিত নয়, এর মূল কারণটি mainউপরের প্রথমটি: এটি সম্পূর্ণ অপ্রয়োজনীয়, এটি একেবারেই কোনও উদ্দেশ্য করে না ves এটা খুব নিরীহ।


1
কখনও কখনও দ্রুত পরীক্ষা করার জন্য একটি উনগুড অনুশীলন ™ প্রয়োজন হয় .... আমরা
যাকে

22

সংক্ষেপে, এটি প্রোগ্রামগুলি সম্পাদনকে বিরতি দেয় এবং একটি সিস্টেম কল করতে এবং অপ্রয়োজনীয় সংস্থান বরাদ্দ করতে হয় যখন আপনি cin.get () এর মতো সহজ কিছু ব্যবহার করতে পারেন। লোকেরা সিস্টেম ("PAUSE") ব্যবহার করে কারণ তারা তাদের আউটপুট দেখতে না পারা পর্যন্ত প্রোগ্রামটি অপেক্ষা করতে চায় the আপনি যদি কোনও প্রোগ্রাম ইনপুটটির জন্য অপেক্ষা করতে চান, তবে এটির জন্য ক্রস প্ল্যাটফর্ম এবং কম চাহিদা থাকা এমন ফাংশনগুলি তৈরি করা হয়।

এই নিবন্ধে আরও ব্যাখ্যা ।


বাহ, আপনি আবার! তুমি কি এখানে থাকো? Lol যাইহোক, ধন্যবাদ, আমি কিছু পড়া করব। ইতিমধ্যে এই বিষয়ে আপনার কী ধারণা?
ভুলে গেছে

আমি কয়েক বছর আগে প্রথম প্রথম সিটি শুরু করার সময় আমার এই একই প্রশ্ন ছিল এবং আমি সেই একই নিবন্ধের দিকে ইঙ্গিত করেছি। আমি ব্যক্তিগতভাবে getchar () ব্যবহার করি।
জন টি

হো ওয়াও ... আমি কিছুক্ষণের জন্য সি ++ করিনি তবে হ্যাঁ ... একই ফলাফলগুলি অর্জনের জন্য আরও ভাল উপায় রয়েছে
নিউটোপিয়ান

16

আপনি এর std::cin.get()থেকে ব্যবহার করতে পারেন iostream:

#include <iostream> // std::cout, std::cin
using namespace std;

int main() {
   do {
     cout << '\n' << "Press the Enter key to continue.";
   } while (cin.get() != '\n');

   return 0;
}

এছাড়া system('pause')ধীর, এবং একটি ফাইল আপনি সম্ভবত প্রয়োজন হবে না রয়েছে: stdlib.h। এটি প্ল্যাটফর্ম নির্ভর, এবং আসলে একটি 'ভার্চুয়াল' ওএস কল করে calls


3
আমাকে System("pause")প্রথম বর্ষের প্রোগ্রামিং কোর্সে ব্যবহার করতে শেখানো হয়েছিল , তবে আমি আমার ম্যাকটিতে আমার প্রোগ্রামগুলি চালাতে সক্ষম হতে চেয়েছিলাম, তাই আমাকে শিখতে হয়েছিল cin.get()
ডেভিউলেস

10

কারণ এটি বহনযোগ্য নয়।

pause

একটি উইন্ডোজ / ডস কেবল প্রোগ্রাম, সুতরাং এটি আপনার কোড লিনাক্সে চলবে না। অধিকন্তু, systemসাধারণত একটি খুব ভালো উপায় অন্য প্রোগ্রাম ডাকতে হিসাবে গণ্য নয় - এটি সাধারণত ব্যবহার করাই ভালো CreateProcessবা forkবা অনুরূপ কিছু।


4

অন্যান্য উত্তরের তালিকা অনুসারে, এড়াতে আপনি অনেকগুলি কারণ খুঁজে পেতে পারেন। এগুলি সমস্ত এক কারণেই ফোটায় যা বাকী অংশকে পরিণত করে। System()ফাংশন মজ্জাগতভাবে অনিরাপদ / অবিশ্বস্ত, এবং যদি না প্রয়োজনীয় একটি প্রোগ্রাম মধ্যে না চালু করতে হবে।

একটি শিক্ষার্থী অ্যাসাইনমেন্টের জন্য, এই শর্তটি কখনই মেটেনি এবং এই কারণে যদি এই পদ্ধতিতে কোনও কল উপস্থিত থাকে তবে আমি প্রোগ্রাম চালনা ছাড়াই কোনও অ্যাসাইনমেন্ট ব্যর্থ করব। (এটি প্রথম থেকেই পরিষ্কার করা হয়েছিল।)


4

আমার জন্য কারণ ছাড়াই বাহিরে বের হওয়ার আগে অপেক্ষা করা সাধারণভাবে বিবেচ্য নয়। একটি প্রোগ্রাম যা এর কাজ করেছে তার শেষ হওয়া উচিত এবং এর সংস্থানগুলি তার স্রষ্টার হাতে ফিরিয়ে দেওয়া উচিত।

কাজের লোকের পরেও কেউ চুপচাপ অন্ধকার কোণে অপেক্ষা করে না, কেউ কাঁধে কাঁধ দেওয়ার জন্য অপেক্ষা করে।


7
এটি একটি নির্বোধ উত্তর। একটি প্রোগ্রাম "এর কাজ করছে" এর একটি অংশ তার কাজের ফলাফলগুলি ব্যবহারকারীকে প্রদর্শন করছে। এটি ব্যবহারকারীদের দ্বারা এটি দিয়ে শেষ হয়ে গেলে অবহিত না করা অবধি এটি শেষ হওয়া উচিত নয়। এমন একটি প্রোগ্রাম যা ব্যবহারকারীর পর্দা থেকে ন্যানোসেকেন্ডটি তার ফলাফলগুলি প্রদর্শন করার পরে অদৃশ্য হয়ে যায়, তা অকেজো।
জেবেেন্টলি

1
@ জেবেেন্টলি: আমি ফলাফলগুলি প্রদর্শন করার পরে পরিস্থিতি নিয়ে কথা বললাম , যদি থাকে। ফলাফল প্রদর্শনের জন্য, উপযুক্ত প্যাটার্নগুলির উপস্থিতি রয়েছে যেমন সংকেত, বাধা, টাইমার, আপনার টার্মিনালে স্ক্রোলব্যাক, ফাইল। system("pause")নিজেই কিছু প্রদর্শন করে না। একটি কমান্ড লাইন ইন্টারফেস প্রোগ্রাম যা কমান্ড লাইন থেকে না ডাকা হয় এবং খুব তাড়াতাড়ি বন্ধ হয়ে যায় ভুলভাবে এবং ভুল বিকল্পগুলির system("pause")সাথে ডাকা হয় , এবং একটি ভুলভাবে অনুরোধ করা প্রোগ্রামটি অবরুদ্ধ করতে ব্যবহার করা সত্যই সঠিক কাজ নয়।
সেবাস্তিয়ান মাচ

1
আমি বলতে চাচ্ছি, ঠিক কল্পনা cat, less, vi, OpenOffice, Mathematica, GNU Octave, কি যদি তারা ব্যবহার করতে চাই system("pause")? এটা বিরক্তিকর হবে।
সেবাস্তিয়ান মাচ

2
হ্যাঁ, এটি বিরক্তিকর হবে, তবে এখন আপনি বিশেষত সমস্যাগুলির বিষয়ে কথা বলছেন system("pause"), তবে আপনার উত্তরটি "প্রস্থান করার আগে অপেক্ষা করুন" সম্পর্কে কথা বলে যা এটি আরও সাধারণীকরণের ধারণা। আপনি যে উদাহরণ দিয়েছেন তার অনেকগুলি প্রকৃতপক্ষে "প্রস্থান করার আগে অপেক্ষা করুন" করুন, যতক্ষণ না ব্যবহারকারীরা প্রোগ্রামটিকে অবহিত করতে চান না। আমি সম্মতি জানাই যে system("pause")এটি অর্জনের পক্ষে ভাল উপায় নয় এবং এর থেকে আরও ভাল সমাধান পাওয়া যায় তবে আপনার উত্তরটি যা বলে তা তাই নয়।
জেবেেন্টলি

1
@ জ্যাবেন্টলি ওহ, একেবারে: যদি কোনও বিলম্ব / অপেক্ষা / প্রম্পটটি প্রোগ্রামটির শব্দার্থবিদ্যার অংশ হয় তবে pause!
20-15

3
system("pause");  

এটি ভুল কারণ এটি উইন্ডোজ এপিআইয়ের অংশ এবং তাই এটি অন্যান্য অপারেশন সিস্টেমে কাজ করবে না।

আপনার সি ++ স্ট্যান্ডার্ড লাইব্রেরি থেকে কেবল অবজেক্ট ব্যবহার করার চেষ্টা করা উচিত। আরও ভাল সমাধান লিখতে হবে:

cin.get();
return 0;

তবে cinআপনার কোডে অন্যগুলি থাকলে এটিও সমস্যা তৈরি করবে । কারণ প্রত্যেকের পরে cin, আপনি একটি Enterবা \nযা একটি সাদা স্পেস অক্ষর ট্যাপ করবেন । cinএই চরিত্রটিকে উপেক্ষা করে এবং এটি বাফার জোনে ছেড়ে দেয় তবে cin.get(), এই অক্ষরটিই থেকে যায়। সুতরাং প্রোগ্রামটির নিয়ন্ত্রণ লাইনে পৌঁছে যায় return 0এবং ফলাফলগুলি আপনাকে দেখার আগে কনসোলটি বন্ধ হয়ে যায়।
এটি সমাধানের জন্য, আমরা নিম্নরূপ কোডটি লিখি:

cin.ignore();  
cin.get();  
return 0;

এটি কিছুটা বিভ্রান্তিকর। system()স্ট্যান্ডার্ড এবং এমএস উইন্ডোজ নির্দিষ্ট নয়। তবে pauseশেল কমান্ডটি ডস হেরিটেজ এবং সাধারণত সেখানে পাওয়া যায়।
উলরিচ একহার্ট

1

এখানে এটি ব্যবহার না করার একটি কারণ: আপনি যদি প্রোগ্রামটিকে অন্য কোনও মেশিনের উপর দিয়ে যাচ্ছেন তবে এটি সুরক্ষা হুমকির কারণ উইন্ডোজে চলমান সর্বাধিক অ্যান্টি-ভাইরাস প্রোগ্রামগুলি বন্ধ করে দিবে। এমনকি যদি আপনার প্রোগ্রামটিতে কেবল একটি সরল cout << "hello world\n"; system("pause"); এটি সম্পদ ভারী থাকে এবং প্রোগ্রামটি সিএমডি কমান্ডে অ্যাক্সেস পায় যা এন্টি ভাইরাসগুলি হুমকিরূপে দেখে।


-1

সিস্টেম ব্যবহারের পক্ষে ("PAUSE"); আপনার প্রোগ্রামের ছোট্ট অংশ তৈরি করার সময় এটি নিজেই ডিবাগ করার জন্য। আপনি যদি প্রতিটি প্রক্রিয়া চলাকালীন এবং তার আগে তার পরে ভেরিয়েবলের ফলাফল পেতে এটি ব্যবহার করেন তবে আপনি এটি নিশ্চিত করতে ব্যবহার করছেন যে তারা সঠিকভাবে কাজ করছে।

বাকি সমাধানের সাথে এটি পুরো জোরে পরীক্ষা করে নেওয়ার পরে আপনার এই লাইনগুলি সরিয়ে ফেলা উচিত। কোনও ব্যবহারকারী-সংজ্ঞায়িত অ্যালগরিদম পরীক্ষা করে এবং আপনি যে ফলাফল চান তার জন্য আপনি যথাযথ ক্রমে জিনিসগুলি করছেন তা নিশ্চিত করার সময় এটি সত্যিই ভাল।

আপনি এটি পরীক্ষা করে দেখার পরে এবং এটি সঠিকভাবে কাজ করছে বলে আশ্বাস দেওয়ার পরে কোনও প্রয়োগে আপনি এটি প্রয়োগ করতে চান না। তবে এটি আপনাকে যা কিছু ঘটছে তার ট্র্যাক রাখার অনুমতি দেয় না। এন্ড-ইউজার অ্যাপগুলির জন্য একেবারেই ব্যবহার করবেন না।


-3

এটি সব স্টাইলের বিষয়। এটি ডিবাগ করার জন্য দরকারী তবে অন্যথায় এটি প্রোগ্রামের চূড়ান্ত সংস্করণে ব্যবহার করা উচিত নয়। এটি মেমরির সমস্যার ক্ষেত্রে আসলেই কিছু যায় আসে না কারণ আমি নিশ্চিত যে যে ছেলেরা সিস্টেমটি আবিষ্কার করেছে ("বিরতি") তারা প্রত্যাশা করেছিল যে এটি প্রায়শই ব্যবহৃত হত। অন্য দৃষ্টিকোণে, কম্পিউটারে যাই হোক না কেন আমরা কম্পিউটারে ব্যবহার করি এমন সমস্ত কিছুর জন্য কম্পিউটারগুলি তাদের স্মৃতিতে থ্রোডল হয়ে যায় এবং এটি ডায়নামিক মেমরির বরাদ্দের মতো সরাসরি হুমকির সম্মুখীন হয় না, তাই আমি এটি ডিবাগিং কোডের জন্য সুপারিশ করব, তবে অন্য কিছুই নয়।


6
এটি মেমোরি ইস্যুতে আসলেই কিছু যায় আসে না কারণ আমি নিশ্চিত যে যে ছেলেরা সিস্টেমটি আবিষ্কার করেছে ("বিরতি") তারা অনুমান করেছিল যে এটি প্রায়শই ব্যবহার করা হত যা সত্যই তা বোঝায় না। নুনটি "উদ্ভাবিত" এটি pauseডস ব্যাচের প্রোগ্রামগুলিতে ব্যবহারের জন্য ডিজাইন করা হয়েছিল, এটি কখনও এভাবে ব্যবহার করার ইচ্ছা ছিল না। যেহেতু যে কেউ এই বাক্যাংশটি টাইপ করার জন্য যথেষ্ট পাগল হওয়ার আগে আরও ভাল বিকল্প ছিল system("pause");
উইচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.