PDA

View Full Version : مبتدی: نمایش پیغام خروج از برنامه !



negar72
شنبه 30 فروردین 1393, 11:40 صبح
سلام دوستان

من میخام یه برنامه بنویسم که با زدن y از برنامه بیاد بیرون زدن N به برنامه ادامه بده ! من یه کارایی کردم ! جواب داد برای وقتی که کاربر 1 کارکتر وراد میکرد ! فک کن کاربر ما یک کنجکاوه و بجای y کلی کاراکتر میزنه ! بعد این جوری میشه !


118141


اینم کد برنامه !


118143


اگه میتونستم n که از نو char هستش ، خالیش کنم ، فک کنم مشکل میشد !؟

لطفا کمک کنید ! تا اخر امشب وقت دارم :)

rahnema1
شنبه 30 فروردین 1393, 13:54 عصر
char n=cin.get();
if (n == 'Y' || n == 'y') return 0;
if (n == 'N' || n == 'n') goto Num1;
goto Num2;

negar72
شنبه 30 فروردین 1393, 15:55 عصر
مثلا الان این چیه ! جواب ! نه داداش ! اشتباه !

rahnema1
شنبه 30 فروردین 1393, 17:14 عصر
پس چی باید باشه؟
یک عکس بریده شده ازیه برنامه نصفه نیمه گذاشتید اینجا
من چه میدونم لیبل های برنامه چیه که در goto از اونها استفاده کردید
در ضمن استفاده از goto خیلی جالب نیست. بهتره مثلا از تابع استفاده کنید. اگه توصیه معلمتون بوده از goto استفاده کنید فکر کنم معلم خوبی ندارید

omid_kma
شنبه 30 فروردین 1393, 20:24 عصر
والا از سال 1968 که دیجکسترا یک مقاله نوشت , گفت که استفاده از goto درست نیست و اثبات هم کرد که برنامه ها رو بدون goto هم میشه نوشت کم کم همه بیخیالش شدن ! ( تقریبا 50 سال پیش )
بعد میگن ایران توی علم رتبه اول پیشرفت توی دنیا رو داره
آره آره اول نباشیم دوم رو دیگه هستیم البته توی علم 50 سال پیش :قهقهه:
من پیشنهادم اینه که توی اون دانشگاهی که این اراجیف رو درس میدن نری سنگین تری !

بعد جای تشکر طلبکار هم میشی این از اون مورد بالا جالبتر هم هست !

رامین مرادی
یک شنبه 31 فروردین 1393, 10:42 صبح
آره کلا دوتا پست داشتن توی این سایت . اومدن و جای تشکر منت هم میزارن.
آره داداش goto یعنی اشتباه محض .اونم توی زبون قدرتمندی مثل c , C++‎‎ به جای اون میتونی از تابع و... استفاده کنی.
کدتو بزار تا بقیه بتونن بهتر راهنماییت کنن.
میدونید این روشی که استفاده میکنی منو یاد زبان اسمبلی میندازه که وقتی شرط ها یا حلقه ها رو پیاده سازی میکنیم از جامپرها که به لیبل ها پرش میکنن استفاده میکنن.
اینکه اسمبلی نیست زبان سی هست بهتره کدتون رو قرار بدید تا روش درستش رو دوستان گوش زد کنن.....

majid1605
یک شنبه 31 فروردین 1393, 13:33 عصر
بی ادبی نباشه
انصافا کدوم بیسوادی این روش رو نشونتون داده بگید برسیم خدمتشون دهنشو سرویس کنیم .
کارهایی از این دست رو راحت میشه با حلقه ها پیاده سازی کرد:متفکر:

asdasd123123
یک شنبه 31 فروردین 1393, 22:52 عصر
اگر از goto درست استفاده بشه چیز بدی نیست بخصوص در سی که شما نمی تونید break از حلقه رو lable دار کنید (مثل جاوا) در حلقه های تو در تو مجبورید از goto استفاده کنید. اگه کاربرد نداشت که از استاندارد جدید سی پلاس پلاس حذف میشد دیگه! ولی تا جایی که ممکنه نباید استفاده بشه تا کد پیچیده و ناخوانا نشه.

negar72
یک شنبه 31 فروردین 1393, 22:55 عصر
سلام همه

همه چیز گفتین جز پاسخ سوالو !
من از همه اینا گفتین استفاده کردم ! استفاده از goto هم (ری مسلتی ) بود :)
حالا کاری به goto باشین ! من میخام برنامه پیغام خروج داشته باشه !

اگه n رو زد ادامه برنامه ! اگه y رو زد خاتمه برنامه ! حالا بین این دوتا یه ادم فضول پیدا میشه ! asdasd asdasd همچین چیزی رو میزنه !
حالا برنامه باید بگه آقای محترم داری اشتباه میزنی فقط n/y باید بزنی ! حالا این برنامه تا این جا درست کار میکنه ! ولی اگه کاربر 10 (qwertyuiop)تا کاراکتر وارد کنه برنامه هم 10 بار پیغام n/y رو باید بزنی رو چاپ میکنه ! من میخام ایجور نباشه !فقط یه بار بگه پیغام نشون بده ! مرسی دوستان ! :)

درضمن اگه بلد نیستید تاقچه بالا نذارید ! ! ;-)

asdasd123123
یک شنبه 31 فروردین 1393, 23:04 عصر
بجای کاراکتر از کاربر رشته دریافت کنید.

negar72
یک شنبه 31 فروردین 1393, 23:42 عصر
من نمیخام از string استفاده کنم ! میخام از char استفاده کنم !

من از visual C++ 6.0 اسفاده میکنم ، وقتی هم از string استفاده کنی !

error C2065: 'string' : undeclared identifier

باید راهی باشه ! اخه ! ؟

البه با Code blocks درست نوشتمش ! از String استفاده کردم ! : )

majid1605
دوشنبه 01 اردیبهشت 1393, 00:05 صبح
اگه فقط میخواید کاربر هر چندتا کارکتر رو زد فقط اولی رو قبول کنه یه راه ساده اینه که n رو ارایه با مقدار 1 بزارید از نوع کاراکتر مشکل پیغامهای پشت سر هم حل میشه البته اگه یه چیزی مثل ymmm5555 بزنه به منزله زدن y هستش یا n99999 به منزله زدن n
ولی اگه کلا میخواید اگه رشته وارد کرد قبول نکنه قضیه فرق میکنه

negar72
دوشنبه 01 اردیبهشت 1393, 00:14 صبح
ولی اگه کلا میخواید اگه رشته وارد کرد قبول نکنه قضیه فرق میکنه

?
چه جوری ؟

majid1605
دوشنبه 01 اردیبهشت 1393, 01:24 صبح
int main()
{
std::string character ;
std::cin >> character ;
if(character.length() > 1)
std::cout << "Please enter one character: ";
while (character != "y" )
{
std::cin >> character ;
if(character.length() > 1)
std::cout << "Please enter one character: ";
else
std::cout << "Please enter a valid answer: " << std::endl;
}
std::cout << "exit successfuly!";
std::cout << std::endl ;
return 0;

}


آخرش مجبور شدیم کد بزاریم بهتره برید بیشتر مطالعه کنید اینها مسائل خیلی پیش و پا افتاده ان
مثلا این می تونه یه راه حل باشه.
حالا اگه میخواید از نوع char استفاده کنید باید یه چند خط بیشتر بنویسید breack , continue و.... هم احتمال زیاد نیاز میشه .

asdasd123123
دوشنبه 01 اردیبهشت 1393, 03:26 صبح
من نمیخام از string استفاده کنم ! میخام از char استفاده کنم !

من از visual C++‎‎‎ 6.0 اسفاده میکنم ، وقتی هم از string استفاده کنی !

error C2065: 'string' : undeclared identifier

باید راهی باشه ! اخه ! ؟

البه با Code blocks درست نوشتمش ! از String استفاده کردم ! : )
.
در ویژوال استودیو باید کتابخانه ی string را include کنید.

#include <string>

negar72
دوشنبه 01 اردیبهشت 1393, 21:22 عصر
دستت درد نکنه این std:: چیه ؟