اطلاعیه

Collapse
No announcement yet.

درخولست راهنمایی برای تبدیل رشته به عدد

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    درخولست راهنمایی برای تبدیل رشته به عدد

    سلام دوستان
    من توسط دستور getchar از پورت سریال یک عدد مانند 3.654 می گیرم و وقتی می خوام مثلا با عدد 5 جمع کنم دوباره بفرستم ایراد میگیره
    از دستور itoa استفاده کردم و داخل یک متغییر از نوع اینتیجر میریزم اعشاری هاش حذف میشه و عدد نمایش داده میشه ولی مشکل اینجاست که من اعشاری ها نیاز دارم

    مممنون میشم راهنمایی کنید

    کد ها :
    کد:
    // Standard Input/Output functions
    #include <stdio.h>
    #include <stdlib.h>
    
    // Declare your global variables here
     int input;
     unsigned char x; 
     char adaad[4]; 
    
    
    while (1)
       {
       // Place your code here 
       
       for(x=0;x<4;x++)adaad[x]=getchar();
       input=atoi(adaad); 
       
        input=input+5;
       printf("+5 = %d",input); 
       }

    *مثلا این adaad که از پورت سریال خوانده شده باید با 5 جمع بشه


    #2
    پاسخ : درخولست راهنمایی برای تبدیل رشته به عدد

    داداش کد های پروژت رو کامل بزار ببینم متغییر ها رو چطور تعریف کردی>>>>کد ها رو کامل بزار

    در ضمن روش زیر جواب نمیده>؟؟؟؟

    کد:
    for(x=0;x<6;x++)adaad[x]=getchar()+5;
    در ضمن به جای این که از getchat استففاده کنی و دونه دونه اطلاعات رو بگیری از gets استفاده کن ....


    موفق باشید.
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    دیدگاه


      #3
      پاسخ : درخولست راهنمایی برای تبدیل رشته به عدد


      امتحان کردم نمیشه (اعشاری)
      عزیز کد ها به پست اول اضافه شد

      دیدگاه


        #4
        پاسخ : درخولست راهنمایی برای تبدیل رشته به عدد

        عزیزم تابع getchar برای دریافت کاراکتر هستش، نه عدد!!!
        برای رفع مشکل پیشنهاد اولم اینه که از توابع کد ویژن استفاده نکنی. ولی اگر خواستی از توابع gets یا scanf استفاده کن.

        دیدگاه


          #5
          پاسخ : درخولست راهنمایی برای تبدیل رشته به عدد

          با سلام
          دستورات atof و strtof برای تبدیل رشته به متغیر float هستند.
          The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

          دیدگاه


            #6
            پاسخ : درخولست راهنمایی برای تبدیل رشته به عدد

            لطفا یک مثال ساده بزنید
            از صبح دنبال حل این مشکل هستم با سرچ کردن همین چند تا کد تونستم پیدا کنم
            از تابع gets - sprint چطور استفاده کنم تا بصورت عددی دریافت کنم

            دیدگاه


              #7
              پاسخ : درخولست راهنمایی برای تبدیل رشته به عدد

              ببینید بجای خوندن بایت بایت عدد، شما با تابع gets می تونین کل خط رو توی یک رشته بیزین، بعد اونو بدین به atof و دیگه تمام.
              for(x=0;x<4;x++)adaad[x]=getchar();
              این خط رو می تونین کلا با یک gets پیاده کنین و لازم نیست عددتون طولش ثابت باشه.
              The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

              دیدگاه


                #8
                پاسخ : درخولست راهنمایی برای تبدیل رشته به ع&

                اینطور نوشتم ولی در جواب کلا هیچی نمیاره : (فقط a = )
                کد:
                 float num;
                 char inputnaum[];
                کد:
                   gets(inputnaum,2); 
                   num=atof(inputnaum);
                   delay_ms(1000);
                   printf("a = %f",num);

                دیدگاه


                  #9
                  پاسخ : درخولست راهنمایی برای تبدیل رشته به عدد

                  کد های زیر رو ببین تا مشکلت رو بفهمی........مربوطه به پروژه HC05
                  کد:
                  #include <mega16.h>
                  #include <stdio.h>
                  #include <delay.h>
                  #include <lcd.h>
                  #asm
                    .equ __lcd_port=0x1b //PORTA
                  #endasm
                   
                   
                   
                  void main() 
                  {
                    char str[1];
                   
                    UCSRA=0x00;
                    UCSRB=0x10;
                    UCSRC=0x86;
                    UBRRH=0x00;
                    UBRRL=51;
                   
                    lcd_init(16);
                   
                    //سه خط زیر رو برای این میزاریم تا ببینیم آیا فرکانس روی 8 مگا تنظیم شده است یا نه
                    //اگه فرکانس روی 8 میگ باشه>>>وقتی متن نمایش داده شد>>1ثانیه بعد از صفحه پاک میشه
                    lcd_putsf("Press any key : ");
                    delay_ms(1000);
                    lcd_clear(); 
                    /////////////////////////////////////
                    
                    while(1)
                    {
                      gets(str,1);
                      lcd_puts(str);
                    }
                  }
                  چیزی رو که براش ارسال میشه تو LCD نشون میده....


                  دریافت مقدار >>>>atof>>>>حالا با عدد 5 جمع کن.....

                  OK???
                  اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                  اگه دوس دارید سریع به جواب برسید :
                  1) قبل از پرسیدن سوال، بسرچید.
                  2) سوالاتون رو با جزئیات کامل مطرح کنید.

                  دیدگاه

                  لطفا صبر کنید...
                  X