PDA

View Full Version : کمک فوری -نحوه ی ورودی دادن به برنامه ها (مربوط به مسابقه بیان)



storm_saeed
پنج شنبه 19 آبان 1390, 20:26 عصر
درود بر شما
می خواستم بدونم در این مسابقه برنامه نویسی بیان وقتی به من یک سری عدد با فرمت .in می دهد چه جوری باید در برنامه ی نوشته شده با turbo c++ این اعداد رو یک جا وارد کرد
با تشکر

mohammadriano
جمعه 20 آبان 1390, 00:46 صبح
منظور شما رو متوجه نشدم
سوال واضح نیست
توضیح بیشتر دهید

storm_saeed
جمعه 20 آبان 1390, 09:56 صبح
ببین دوست عزیز من فایل رو با فرمت .exe ساخته به عنوان مثال یکی از سوال ها جمع 2 عدد بود خوب پس از اینکه برنامه را ساختم این سایت یک فایل با فرمت .in که حدود 100 تا عدد بود به من داد حالا گفت که فایل .in رو به برنامه بده و جواب را در یک فایل به نام javab.out بریزه چه جوری باید این کار رو کنم

NIMA_1981
جمعه 20 آبان 1390, 17:15 عصر
خوب مقدار ها رو از فایل بحون و محاسبه کن

storm_saeed
جمعه 20 آبان 1390, 18:13 عصر
نه می خوام خودش 100 تا عدد رو محاسبه کنه و در پوشه ای با فرمت .out جواب ها رو ذخیره کنه
در سایت بیان خودشون گقتن با استفاده از command به عنوان مثال sum.exe<soalat.in>javab.out را اگر تایپ کنیم خودش فایل sum رو اجرا soalat رو به عنوان ورودی میده بهش و در javab جواب ها رو ذخیره می کنه ولی من هر کاری کردم اجرا کرد برنامه رو ولی جواب ها رو نریخت در اون پوشه

developing
شنبه 21 آبان 1390, 13:46 عصر
با سلام

وقتي مي خوايم يه برنامه ورودي بگيره بايد اون رو توسط پارامترهاي خاصي در تابع main برنامه بخونيم مثلا:
#include<iostream>
int main(int argc, char* argv[]) {
cout << argc<< endl;
cout << argv[0];
if(argc == 2)
cout << argv[1]<< endl;
cin.get();
return 0;
}

برنامه ي بالا تعداد آرگومانهاي برنامه رو مي نويسه(كه اگه يه فايل به وسيله ي خط فرمان به تابع ارسال شود تعداد دوتا مي شود)نام برنامه رو مي نويسه كه همون نام برنامه ي exe نوشته شده به وسيله ي خودتونه.

به طور كلي اگه بخوايم براي پارامترهاي خط فرمان برنامه نويسي كنيم بايد در تعريف تابع main به شكل زير عمل كنيم:
int main(int argc, char *argv[]);
كه پارامتر اول يك عدد است كه تعداد پارامترهاي رد شده به برنامه رو مي گه.
و دومي يه آرايه ي رشته ايه كه اوليش( يعني خونه ي صفر آرايه) نام خود برنامه است، دوميش مقدار رشته ايه اولين پارامتر رو داره، سوميش مقدار رشته ايه دومين پارامتر رو داره و ...


برنامه ي بالا اسم خودش رو مي نويسه
و بعد بررسي مي كنه كه اگه تعداد پارامترهاي ورودي 2 تا بود اونوقت پارامتر دوم رو هم چاپ مي كنه.
مثلا وقتي برنامه من رو توي درايو c با نام test.exe ذخيره كرده باشيد و توي cmd فقط نام برنامه رو بنويسيد يعني دستور test.exe رو بنويسيد خروجي زير:

77781

و اگه با دستور test.exe yourfile.txt فراخوانيش كنيد برنامه خروجي زير را توليد مي كند:

77782

و اگه تعداد پارامترها بيش از دو تا باشد يعني مثلا دستور test.exe yourfile.txt secondeparameter فراخوانيش كنيد چون تعدا پارامترهاش دو تا نيست خروجي زير را توليد مي كند:

77783

مي بينيد كه تو هر بار فراخواني برنامه تعداد پارامترها رو مي نويسه. براي وارد كردن پارامتر بعد كافيه يه خط فاصله بذاريم و پارامتر بعد رو بنويسيم.

در ضمن مي تونيد به لينك زير براي اطلاعات بيشتر مراجعه كنيد:
How to parse command line parameters. (http://www.cplusplus.com/articles/DEN36Up4/)