View Full Version : سوال: کار با Operator ها
tstsst
شنبه 17 فروردین 1392, 23:19 عصر
سلام
من در این زبان تازه کارم و داشتم برنامه ای مینوشتم که با اررور مواجه شدم :
std::cout << ((i % 10) == 0 ? std::endl : i);
به جای endl هر عدد و یا هر تک حرفی میشه گذاشت ولی من می خوام به خط بعد بره ؟!
حتی به '\n' هم ایرادی نمی گیره ولی فقط کد اسکی شو که عدد 10 چاپ می کنه .
از شرط if یا ... نمی خوام استفاده کنم هیچ راهی نداره که به خط بعد بره ؟
MinusOne
یک شنبه 18 فروردین 1392, 01:33 صبح
ببین این جواب میده :
std::cout << ((i % 10) == 0 ? (char)(std::endl) : i);
tstsst
یک شنبه 18 فروردین 1392, 12:15 عصر
سلام
اررور میده
1 IntelliSense: cannot determine which instance of overloaded function "std::endl" is intended c:\Users\-----\Documents\Visual Studio 2012\Projects\ConsoleApplication2\ConsoleApplicati on2\Source.cpp 133 33 ConsoleApplication2
روی هردو پرانتز قبل endl و char
shahmohammadi
دوشنبه 19 فروردین 1392, 20:20 عصر
سلام.
فكر نكنم بشه.
چون دو عملوند اين دستور بايد از يك نوع باشند.
يا هر دو كاراكتر يا هر دو عدد صحيح يا هر دو عدد اعشاري و يا انواعي مثل std::endl
در اين كار بايد از ?: صزف نظر كنيد و يك دستور ديگه بنويسيد.
tstsst
دوشنبه 19 فروردین 1392, 23:44 عصر
سلام.
فكر نكنم بشه.
چون دو عملوند اين دستور بايد از يك نوع باشند.
يا هر دو كاراكتر يا هر دو عدد صحيح يا هر دو عدد اعشاري و يا انواعي مثل std::endl
در اين كار بايد از ?: صزف نظر كنيد و يك دستور ديگه بنويسيد.
خیلی متشکر نیازی به صرف نظر کردن نیست خودتون گفتین
دو عملوند اين دستور بايد از يك نوع باشند
پس می شه این جوری نوشت.
std::cout << ((i % 10) == 0 ? '\n' : (char)(arr[i] + '0'));
متشکر از راهنمایی.
shahmohammadi
سه شنبه 20 فروردین 1392, 00:21 صبح
بله. اگر عدد يك رقمي باشه مي شه اين كارو كرد.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.