[Powered by Google Translate] [கட்டளை வரி அளவுருக்களை]
[கிறிஸ்டோபர் பர்த்தலோமிவ் - ஹார்வர்ட் பல்கலைக்கழகம்]
[- CS50.TV இந்த CS50 உள்ளது]
ஒரு நிரலை ஒரு பயனுள்ள வசதியை பயனர் உள்ளீட்டை ஏற்க வேண்டும்.
இதுவரை, நாம் CS50 நூலகம் உள்ள சில செயல்பாடுகளை ஆராயப்படுகிறது
போன்ற பயனர் உள்ளீடு, ஏற்க ", சரம் கிடைக்கும்"
பயன்பாடு இயங்கும்போது ஒரு சரம் வேண்டும், பயனர் கேட்கும்.
>> நீங்கள் உங்கள் நிரல் உள்ளீடு வழங்க வேண்டும் எனினும், வழக்குகள் உள்ளன
அது உண்மையில் இயங்கும் முன்.
இந்த வழியில், உங்கள் பயனர் இருந்து கூடுதல் தகவல் கேட்க தேவையில்லை
ஒரு எளிய பணி இயக்கும் போது.
உதாரணமாக, எம்.வி. அல்லது UNIX இல் நடவடிக்கை கட்டளையை எடுத்து.
இந்த கட்டளை பயனர் ஒரு இடத்திலிருந்து மற்றொரு ஒரு கோப்பு நகர்த்த அனுமதிக்கிறது.
கையேடு பக்கங்கள் படி, எம்.வி. இரண்டு கட்டளை வரி அளவுருக்களை ஏற்றுக்கொள்கிறார்:
அந்த கோப்பு நகர்த்தப்படுகிறது மற்றும் இடம் கோப்பை நகர்த்தப்படுகிறது.
இந்த உதாரணம் இரண்டு வாதங்கள் ஒரு கட்டளையை கொண்டுள்ளது.
நாம் எப்படி இந்த கட்டளை வரி அளவுருக்களை பயன்படுத்த எங்கள் சி நிரல் சொல்ல?
>> சரி, நாம் அனைவரும் சி திட்டங்களில் பயன்படுத்தும் முக்கிய, ஒரு இரகசிய என்று கூறினார்.
Argc மற்றும் argv: முக்கிய இரண்டு அளவுருக்கள் ஏற்றுக்கொள்கிறார்.
இந்த விதிமுறைகளை மீது செல்லலாம்.
>> வாதம் எண்ணிக்கை என்பதை குறிக்கும் முதல் அளவுரு, argc,,
முழு ஒரு தரவு வகை உண்டு.
argc அளவுரு கட்டளையை உட்பட வாதங்கள் எண்ணிக்கை, கொண்டுள்ளது.
எங்கள் நடவடிக்கை கட்டளை, நாம் மட்டும் இரண்டு வாதங்கள் காட்டப்படும் எனினும்,
argc மதிப்பு 3 இருக்கும்.
வாதம் வெக்டார் குறிக்கிறது இரண்டாவது அளவுரு, argv,,
சரங்களை சுட்டி என்று எரிப்பதை சுட்டிகள் ஒரு வரிசை ஆகும்.
>> இந்த, argv ஒவ்வொரு உறுப்பு, பூஜ்ஜியத்தில் இருந்து தொடங்கி என்று அர்த்தம்
கட்டளை மற்றும் வாதங்கள் உள்ளன.
எடுத்துக்காட்டாக, argv [0], இது நான், argv பூஜ்யம் என்று பார்க்கவும் வேண்டும்
எப்போதும் இயங்கும் என்று கட்டளை கொண்டிருக்கும் -
இந்த வழக்கில், எம்.வி..
argv [1] file.txt முதல் வாதம்,, கொண்டிருக்கும்
மற்றும் argv [2] இரண்டாவது வாதம் கொண்டிருக்கும், ~ / cs50 /.
argv கடைசி வாதம் எப்போதும் பூஜ்ய இருக்கும்.
எனவே இந்த கட்டளை வரி அளவுருக்களை செயல்படுத்த வேண்டும்.
முந்தைய பயிற்சிகள், நாம் முக்கிய இன் அளவுரு என, எதுவும் பொருள், வெற்றிடத்தை வைக்கப்படும்.
எனினும், பொருட்டு எங்களுக்கு, கட்டளை வரி அளவுருக்களை பயன்படுத்த வேண்டும்
நாங்கள் முக்கிய எண்ணாக argc, கரி * argv [] ஒரு வெற்றிடத்தை மற்றும் இடத்தில் உள்ளே நீக்க வேண்டும்.
இப்போது, உங்கள் வாதங்கள் எந்த argv இருந்து முழு உறுப்பு, அணுக,
நீங்கள் சாதாரணமாக இந்த வரிசை மூலம், மீண்டும் கூறு, அல்லது வளைய முடியாது.
அதனால், உள்ளே முக்கிய உடல், நாம் போய் லூப் ஒரு தட்டச்சு செய்ய போகிறோம்:
இன்னும் (int நான் = 0; நான் <argc; நான் +).
>> நாம் மட்டுமே குறியீடு ஒரு வரி இயக்கும் நீங்கள் ஏனெனில் நாம் இங்கே ஒரு சுருள் பிரேஸ் தேவையில்லை
இந்த சுழற்சியில் உடலில் உள்ள.
நாம் மேலே போய் ஒருமுறை தாவலை அடித்து விடுவேன்
பின்னர் printf தட்டச்சு ("argv [% d], ஒரு முழு எண் மதிப்பு பிரதிநிதித்துவம்,
புதிய வரி தன்மையை பிறகு, சரம் செய்ய,% கள் ஆகும்.
நாம் வளைய தற்போதைய மறு செய்கை க்கான printf நான் வழங்கும்
மற்றும் argv [நான்] தற்போதைய கட்டளை வரி வாதத்தின் சரம் பிரதிநிதித்துவம்.
நாம் இரண்டு வாதங்கள் அதை இயக்கும் போது, நாம் முனையத்தில் காட்டப்படவில்லை வாதங்களை பார்ப்போம்.
முந்தைய நாம் argv எரிப்பதை சுட்டிகள் ஒரு வரிசை நடைபெறும் என்று தெரிவித்தார்.
>> இந்த வழக்கு என்றால், அதனால், எப்படி நாம் ஒவ்வொரு வாதம் தனிப்பட்ட எழுத்துக்கள் அணுக வேண்டும்?
உதாரணமாக, நான் முதல் வாதம் ஒரு குறிப்பிட்ட தன்மையை பார்க்க வேண்டும் என்றால் என்ன?
சரி, பதில் நாம் ஒரு உள்ளமை வளைய விண்ணப்பிக்க வேண்டும் என்று
பின்னர் வாதம் சரம் உள்ள உறுப்புகள் ஒவ்வொன்றும் மூலம் மீண்டும் கூறு.
இந்த நீங்கள் அதை எப்படி இருக்கும்.
>> முதல், நாம் example2.c நகலை செய்ய போகிறோம்.
பின்னர், உள்ளே லூப் முதலில்,
நாம் லூப் கூடுதல் சேர்க்க போகிறோம்.
அதனால் தான் (இண்ட் ஜே = 0, n = strlen (argv [நான்]),
இது பின்னர், நம்மை தற்போதைய வாதம் நீளம் கொடுக்கிறது
; J <n; ஜே + +)
நாம் ஒவ்வொரு தன்மையை இடம் அச்சிட போகிறோம்
printf பயன்படுத்தி தற்போதைய வாதத்தின் உள்ளே.
எனவே, printf ("argv [% d], தற்போதைய வாதத்தின் குறியீட்டு பிரதிநிதியாக,
பின்னர் [% d] மீண்டும், தற்போதைய வாதத்தை தற்போதைய தன்மை பிரதிநிதியாக,
இது:% கேட்ச், வாதம் தற்போதைய கதாபாத்திரத்தை.
இறுதியாக, நாம் வெளி சுழற்சியில் குறியீடு printf வழங்க, நான்,
பின்னர் உள் வளைய அட்டவணை.
>> நமது கடந்த வாதம் printf வழங்கப்படும் வாதம் இருந்து உண்மையான கதாபாத்திரம்
கட்டளை வரியில்.
இப்போது, நான் ஒரு சரம் நீளம் பெற சரம் செயல்பாடு strlen பயன்படுத்தப்படுகிறது, ஏனெனில்,
நான் நம் அடங்கும் மேல் string.h நூலகம் சேர்க்க வேண்டும்.
எனவே, அதை செய்ய, நாம் போகலாம், மற்றும் stdio.h கீழ், நாம் செய்ய போகிறோம்
# அடங்கும்.
>> எனவே, நாட்டின் தொகுத்தல் மற்றும் இயக்க அது ஒரு உண்மையான வாதம் வழங்க வேண்டும்.
>> நாம் பார்க்க முடியும் மற்றும், நாம் இப்போது வாதம் ஒவ்வொரு தனிப்பட்ட எரிப்பதை சரியான இடம் இல்லை.
அவ்வளவு தான். நான் கிறிஸ்டோபர் பர்த்தலோமிவ் இருக்கிறேன்; இந்த CS50 உள்ளது.
[CS50.TV]