b\ همون backspace هست. این رو اجرا کنید:
cout << "Hello, world";
cout << "\b\b\b";
سه تا کاراکتر آخر رو پاک میکنه. احتمالا مشکل از جای دیگهای هست. اگه کدتون کوچیکه، و البته اگه براتون مهم نیست که کس دیگهای اون رو ببینه، اینجا paste اش کنید تا با کمک دوستان بررسی کنیم و ببینیم شاید راه حل دیگهای هم بود.
واقعا جالبه! این کد شما رو که اجرا میکنم سه کاراکتر آخر رو حذف میکنه! ولی رو کد من جواب نمیده!
برنامهای هم که من نوشتم خیلی سادست! رشته اعداد فیبوناچی رو چاپ میکنه. البته قبلش میپرسه که چند رشته اول میخواین چاپ بشه. کدی هم که براش نوشتم اینه:
#include <iostream>
using namespace std;
main ()
{
int a=1,b=1,c,n;
cout << "Chand adad? (min=2) ";
cin >> n;
cout << "1, 1, ";
if (n>2)
for (int i=2;i<n;i++)
{
c=a+b;
cout << c << ", ";
a=b;
b=c;
}
cout << "\b\b";
cout << endl;
}
الآن اگه ۵عدد اول رو بخواین خروجی این میشه:
1, 1, 2, 3, 5,
من میخوام اون , که آخر هست پاک بشه.
اون دوتا دستوری که نوشتم رو امتحان کردین ؟
جواب میده ها!!!!!!!!
string test = "anjomane ubuntu" ;
cout << test << endl ;
test.resize(test.size()-1);
cout << test << endl ;
خروجی :
anjomane ubuntu
anjomane ubunt
مسئله اینه که کاراکتر آخری که میخوام چاپ بشه توی اون متغییر نیست. یک بار دیگه کد رو بخونین
توی اون خط این رو بنویسید:
cout << "\b\b ";
من پیشنهاد میکنم به عنوان تمرین بیشتر در مورد کد آقای مرتضی تحقیق کنید. مطمئنم اطلاعات جالبی در مورد رشته ها بدست می یارید.
آها! این کار کرد. ممنون از توضیح روش کار این کد
با این تغییر تو کد کاراکتر آخر اصلا چاپ نمی شه که بخواد پاک بشه(یه جورایی تقلب کردم ):
#include <iostream>
using namespace std;
int main ()
{
int a=1,b=1,c,n;
cout << "Chand adad? (min=2) ";
cin >> n;
cout << "1, 1";
if (n>2)
for (int i=2;i<n;i++)
{
c=a+b;
cout << ", "<<c;
a=b;
b=c;
}
cout << endl;
return 0;
}
خب اینجوری که برادر من باز باید بهش بگم که اولین کاراکتر رو پاک کنه! (راهی هست که بهش بگم اولین کاراکتر رو پاک کنه؟؟)