[Powered by Google Translate] [-এ ব্যবহারযোগ্য কমান্ড লাইন আর্গুমেন্ট]
[ক্রিস্টোফার BARTHOLOMEW - হার্ভার্ড বিশ্ববিদ্যালয়]
[এটি CS50 - CS50.TV]
একটি প্রোগ্রামের জন্য দরকারী বৈশিষ্ট্য ব্যবহারকারী ইনপুট গ্রহণ করা হয়.
সেটা অনেক দূরে, আমরা CS50 গ্রন্থাগারের মধ্যে কিছু ফাংশন করেছি অন্বেষণ
যেমন ব্যবহারকারীর ইনপুট, স্বীকার করি "স্ট্রিং পেতে"
যা ব্যবহারকারীকে অনুরোধ জানানো হবে, একটি স্ট্রিং এর জন্য আবেদন করার সময় চলমান,.
>> তবে, মামলা আছে যেখানে আপনি আপনার প্রোগ্রামের ইনপুট প্রদান করতে চান
আগে আসলে এটি চালানো সম্ভব.
এই ভাবে আপনি আপনার ব্যবহারকারী থেকে অতিরিক্ত তথ্যের জন্য আপনাকে করতে হবে না
যখন একটি সহজ নির্বাহ.
উদাহরণস্বরূপ, mv নিন অথবা UNIX-র মধ্যে কমান্ড সরানো,.
এই কমান্ডের সাহায্যে ব্যবহারকারীর অবস্থান থেকে এক অন্য একটি ফাইল সরাতে পারবেন.
ম্যানুয়াল পেজ অনুযায়ী, mv কমান্ড লাইন আর্গুমেন্ট গ্রহণ দুই:
যে ফাইল এবং স্থানান্তরিত অবস্থান ফাইল হচ্ছে স্থানান্তরিত হচ্ছে.
সুতরাং এই উদাহরণ দুটি আর্গুমেন্ট সহ একটি কমান্ড আছে.
তাই কিভাবে আমরা আমাদের সি প্রোগ্রাম না এইসব কমান্ড লাইন আর্গুমেন্ট ব্যবহার করা বলুন?
>> হ্যাঁ, এটি সক্রিয় যে প্রধান, যা আমরা সব সি প্রোগ্রামে ব্যবহার, একটি গোপন আছে.
Argc এবং argv: প্রধান দুটি পরামিতি গ্রহণ করে.
চলুন এই শর্তাবলীর উপর যান.
>> প্রথম প্যারামিটার, argc, যুক্তি গণনা জন্য যা দাঁড়িয়েছে,
একটি পূর্ণসংখ্যা ডাটা টাইপ আছে.
argc পরামিতি আর্গুমেন্টের সংখ্যা, কমান্ড সহ রয়েছে.
আমাদের সরানো কমান্ড, যদিও আমরা কেবল দুটি আর্গুমেন্ট প্রদর্শিত আছে,
argc এর মান 3 হবে.
দ্বিতীয় প্যারামিটার, argv, আর্গুমেন্ট ভেক্টর জন্য যা দাঁড়িয়েছে,
গৃহস্থালির কাজ হয় পয়েন্টার স্ট্রিং যে নির্দেশ শ্রেণীবিন্যাস.
>> এর অর্থ এই যে argv প্রতিটি উপাদান, শূন্য থেকে শুরু,
কমান্ড ও আর্গুমেন্ট রয়েছে.
উদাহরণস্বরূপ, argv [0], যা আমি হিসাবে argv শূন্য পড়ুন করব,
যে কমান্ড চালানো হচ্ছে সবসময় থাকতে হবে -
এই ক্ষেত্রে, mv.
argv [1] প্রথম যুক্তি, file.txt থাকতে হবে,
এবং argv [2] দ্বিতীয় যুক্তি থাকতে হবে, ~ / cs50 /.
argv সর্বশেষ যুক্তি সবসময় নাল হবে.
তাই আসুন এই কমান্ড লাইন আর্গুমেন্ট বাস্তবায়ন.
আগের ব্যায়ামে, আমরা শূন্যস্থান স্থাপন, এর মূল প্যারামিটার হিসাবে কিছুই অর্থাত,.
ক্রম তবে, আমাদের জন্য কমান্ড লাইন আর্গুমেন্ট ব্যবহার করার জন্য,
আমরা যাও প্রধান int-argc, গৃহস্থালির কাজ * argv [] বর্জিত এবং জায়গা ভিতরে সরিয়ে ফেলা আবশ্যক.
এখন, যাও argv থেকে সম্পূর্ণ উপাদান, যা আপনার আর্গুমেন্ট অ্যাক্সেস,
আপনি কেবল বারবার করা, বা ভালো অ্যারের মাধ্যমে লুপ,.
এর ভিতর প্রধান শরীরের তাই,, আমরা এগিয়ে যান এবং লুপ জন্য একটি টাইপ করুন চলুন:
জন্য (int i = 0; তোমার <argc; i + +).
>> আমরা এখানে প্রয়োজন একটি কোঁকড়া বক্রবন্ধনী না কারণ আমরা শুধু এক লাইন কোড করছি নির্বাহ
মধ্যে এই লুপ শরীরের.
আমরা এগিয়ে যাব ট্যাব একবার আঘাত করব,
তারপর টাইপ করুন printf ("argv [% d], একটি পূর্ণসংখ্যা মান প্রতিনিধিত্ব করেন,
চিহ্নিত পংক্তিটি জন্য% s-এ, তারপর, নতুন লাইন অক্ষর.
তারপর আমরা প্রদান লুপ বর্তমান পুনরাবৃত্তির জন্য printf তোমার
এবং argv [i] বর্তমান জন্য কমান্ড লাইন আর্গুমেন্ট স্ট্রিং উপস্থাপনা.
যখন আমরা দুটি আর্গুমেন্ট সঙ্গে এটি চালানোর জন্য, আমরা টার্মিনালে প্রদর্শিত হচ্ছে আর্গুমেন্ট দেখতে পাবেন.
এর আগে আমরা যে argv গৃহস্থালির কাজ পয়েন্টার একটি অ্যারের অনুষ্ঠিত.
>> সুতরাং, এই যদি হয় কেস, তারপর আর কিভাবে আমরা প্রতিটি আর্গুমেন্ট স্বতন্ত্র অক্ষর অ্যাক্সেস?
উদাহরণস্বরূপ, যদি আমি একটি প্রথম আর্গুমেন্ট নির্দিষ্ট অক্ষর সন্ধান করতে চেয়েছিলাম?
ভাল, তবে উত্তর হবে যে আমরা একটি নেস্টেড লুপ প্রয়োগ প্রয়োজন
যে যুক্তি স্ট্রিং মধ্যে উপাদানের মাধ্যমে প্রতিটি পুনরুক্তি করা হবে.
এটি কিভাবে আপনি এটা করবেন.
>> প্রথমত, আমরা example2.c একটি কপি করতে যাচ্ছেন.
তারপর, ভিতর লুপ জন্য প্রথম,
আমরা লুপ জন্য একটি অতিরিক্ত যোগ চলুন.
তাই জন্য (int-j = 0, n = strlen (argv [i]),
তারপর যা দেয় বর্তমান যুক্তি দ্বারা আমাদের,
; ঞ <n; ঞ +)
আমরা প্রতিটি অক্ষরের অবস্থান মুদ্রণ চলুন
printf ব্যবহার করে বর্তমান যুক্তি ভিতরে.
সুতরাং, printf ("argv [% d], বর্তমান যুক্তি সূচক প্রতিনিধিত্বকারী,
তারপর [% d] আবার, বর্তমান যুক্তি বর্তমান চরিত্র প্রতিনিধিত্ব করেন,
হল: আর্গুমেন্ট বর্তমান অক্ষর গ জন্য%,.
অবশেষে, আমরা বাইরের লুপ সূচী সঙ্গে printf প্রদান, তোমার,
তারপর ইনার লুপ সূচী.
>> এবং printf আমাদের শেষ যুক্তি হল থেকে যুক্তি দেওয়া থেকে প্রকৃত চরিত্র
কমান্ড লাইন.
এখন, কারণ আমি স্ট্রিং এর দৈর্ঘ্য প্রাপ্ত স্ট্রিং ফাংশন ব্যবহৃত strlen,
আমি আমাদের অন্তর্গত শীর্ষে string.h লাইব্রেরি যোগ করা আবশ্যক.
সুতরাং, যে না, আমরা আপ এ যান এবং শুধু stdio.h অধীন, আমরা কি করব চলুন
# অন্তর্ভুক্ত .
>> সুতরাং, আসুন এবং কম্পাইল করে এবং এটি একটি প্রকৃত যুক্তি প্রদান.
>> এবং, আমরা হিসাবে দেখতে পারেন, আমরা এখন প্রতিটি গৃহস্থালির কাজ সঠিক আর্গুমেন্ট অবস্থান আছে.
সুতরাং যে এটি. আমি ক্রিস্টোফার BARTHOLOMEW; এটি CS50.
[CS50.TV]