PDA

View Full Version : سوال: ورودی با طول نا معلوم(کمکم کنید بد جوری گیر کردم)



m_horizon
پنج شنبه 29 اردیبهشت 1390, 21:37 عصر
سلام می خواهم ورودی با طول نا معلوم از کارکتر ها را بگیرم و در ارایه ای از نوع کارکتر ترجیحا دینامیک با طول نامعلوم ورودی قرار دهم (یعنی تا جایی که کاربر میخواهد ورودی را وارد کند و در اخر با زدن کلید هایی اعلام پایان کند) :گیج:
باتشکر
از تمامی کسانی که مشاهده میکنند خواهشمندم نظری جوابی چیزی بنویسند که لااقل دعای درمانده ای یارشان باشد بازهم با تشکر :تشویق:

یوسف زالی
پنج شنبه 29 اردیبهشت 1390, 22:14 عصر
خوب بنداز تو حلقه شرطش هم این باشه که با کد خاص بپره بیرون.
مثلا یه چیزی مثل این:


do{
ch=getche();
if(ch==13) break;
else s+=ch;
}while (1=1);


psudo نوشتم . ارور داد ببخش.

Salar Ashgi
پنج شنبه 29 اردیبهشت 1390, 22:27 عصر
روشها زیاده ، ولی با شرایطی که شما توصیف کردید ، بهتره آرایه ای با ماکسیمم طول در نظر بگیرید :

در مثال بنده ، خروج با کاراکتر 'q' انجام می پذیرد و مادامی که این کاراکتر وارد نشود ، از ورودی کاراکتر گرفته میشود !


#include <iostream>
#include <conio>
int main(){
char a[100];
char ch;
int k=0;
while((ch=cin.get())!='q'){
if(ch!='\n')
a[k++]=ch;}
for(int i=0;i<k;i++)
cout<<a[i]<<endl;
getch();
}



خروجی :

70115

موفق باشید ./

bigtime
دوشنبه 02 خرداد 1390, 07:05 صبح
با سلام به همه ی دوستان
من فکر کردم که این جواب های داده شده چیزی نبوده که این دوستمون دنبالش بوده پس یه کد دیگه نوشتم و برای اینکه جنبه ی آموزشی هم داشته باشه باید بگم برنامه ی من رو می تونید طوری بنویسید که حتی این عدد اولیه ی 40 رو هم کاربر مشخص کنه و دقیقا بشه چیزی که می خواستی.
حالا باید کمی فکر کنی.
#include <iostream.h>
#include <conio.h>
////
////
main()
{
int n;
char *string=new char [40];
cout<<"enter number of your chars:";
cin>>n;
for(int i=0;i<n;i++)
{
cout<<"enter your"<<i<<"char:";
string[i]=getche();
cout<<endl;
}
return 0;
}
البته می تونید به جای مشخص کردن تعداد ورودی در اول برنامه حلقه رو تا جایی که اون ورودی خاص وارد نشده ادامه دهید و شرط پایان رو وارد شدن اون ورودی قرار بدید.