PDA

View Full Version : وارد کردن فقط integer



25farshid
شنبه 20 آذر 1389, 16:20 عصر
سلام
چه جوری میشه تو C++ فقط عدد وارد کرد یعنی اگه کاراکتر دیگه ای وارد کرد پیغام خطا بده .
با تشکر.

Salar Ashgi
شنبه 20 آذر 1389, 19:53 عصر
سوالتان کمی مبهم است ، ولی آنطور که بنده برداشت کردم ، مثالی برایتان میزنم :



#include <iostream>
#include <conio>
int main(){
char a[20];
int k;
bool res=true;
while(1){
cout<<"Enter a num :\n";
cin.getline(a,20);
for(int i=0;a[i]!='\0';i++){
k = (int)(a[i]);
if(k>=48 && k<=57)
res = true;
else{
res = false;
break;}
}
if(res)
cout<<"Input is Numeric !\n";
else
cout<<"No Numeric !\n";}
getch();
}

اجرای برنامه :

63464

موفق باشید .

25farshid
یک شنبه 21 آذر 1389, 11:17 صبح
دست درد نکنه مثال خوبیه اگه میشه در مورد کدتون کمی توضیح بدین.

Salar Ashgi
یک شنبه 21 آذر 1389, 21:44 عصر
ببینید ، کد پیچیدگی آنچنانی ندارد ، توصیه میکنم روی مفاهیم پایه ای ، مطالعه ای داشته باشید .
حالا هرکجای کد بالا را مشکل دارید ، بگید تا توضیح بدم .

موفق باشید ./

Pouri_sb
یک شنبه 21 آذر 1389, 21:56 عصر
چرا بازتون بینه 48 و 57 هست؟

Salar Ashgi
یک شنبه 21 آذر 1389, 22:03 عصر
چرا بازتون بینه 48 و 57 هست؟

دلیلش اینه که کد اسکی ارقام بین 48 تا 57 هست .

25farshid
دوشنبه 22 آذر 1389, 15:43 عصر
کدتون درست کار میکنه ولی نمیشه باهاش مثل integer کار کرد چون اونو ریختید تو آرایه ای از کاراکتر ها اگه راه حل دیگه ای دارید خیلی ممنون میشم.
با تشکر.

Salar Ashgi
دوشنبه 22 آذر 1389, 20:29 عصر
کدتون درست کار میکنه ولی نمیشه باهاش مثل integer کار کرد چون اونو ریختید تو آرایه ای از کاراکتر ها

خوب خیلی ساده ، با تبدیل هر عضو آرایه کاراکتری به عدد و ضرب در توانهای متوالی 10 ، معادل عددی مورد نظر
بدست میاد .

موفق باشید ./

25farshid
سه شنبه 23 آذر 1389, 20:02 عصر
من این کد رو برای تبدیل اون به عدد نوشتم ولی خروجی اون چیزی نیست که میخوام راهنمایی کنید .


double count=0;
for(int c=0;a[c]!='\0';c++)
{
count++;
}
cout << count << endl;
count=count-1;
for(int j=0;a[j]!='\0';j++)
{
num2=num2+a[j]*(pow(10,count));
count=count-1;
}
cout << num2 << endl ;

Salar Ashgi
سه شنبه 23 آذر 1389, 21:59 عصر
باید بشکل زیر عمل کنید :



#include <iostream>
#include <conio>
#include <string>
int main(){
char a[]={"12345"};
int len = strlen(a);
int p=1;
int res=0;
for(int i=len-1;i>=0;i--){
res+=(a[i]-48)*(p);
p*=10;}
cout<<res<<endl;
getch();
}


موفق باشید ./

25farshid
چهارشنبه 24 آذر 1389, 15:25 عصر
دست درد نکنهok شد.

25farshid
چهارشنبه 24 آذر 1389, 15:27 عصر
دست درد نکنه ok شد.