اطلاعیه

Collapse
No announcement yet.

مشکل با تابع sprintf در کدویژن

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

    مشکل با تابع sprintf در کدویژن

    سلام
    وقتی میخام یک متغیر از نوع اعشاری(float) رو به رشته تبدیل کنم(برای نمایش روی LCDو...) codevision، ازم خطا نمیگیره اما اون عدد اعشاری رو نشون نمیده.
    سخت افزارم کاملا سالمه و بنابه دلایلی نباید از کتابخونه های دیگه استفاده کنم، لطفا دوستانی که به برنامه نویسی C مسلط هستند، راهنمایی کنند، اینم برنامه:
    این برنامه فقط کاراکتر n رو نشون میده نمیدونم چرا.
    float t;
    char s[16];
    t=1.5;
    sprintf(s,"n=%f",t);
    lcd_gotoxy(0,0);
    lcd_puts(s);
    delay_ms(500);

    ممنون
    تقدیر تقویم انسانهای عادی ، تغییر تدبیر انسانهای عالیست.

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

    سلام دادا.
    مشکل اینجاست که عدد رو به رشته تبدیل نکردی. این کار رو با دستور ftoa از کتابخانه stdlib میتونی انجام بدی.
    فکر کنم کد زیر کارتو راه بندازه. اگه مشکلی بود در خدمتم
    کد:
         #include <stdlib.h>
         
         
         float t=1.5;
         char s[16],st[16];
         
         ftoa (t,3,s);
         sprintf(st,"%s",s);
         llcd_puts(str);
    تشکر لازم نیست!

    دیدگاه


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

      نوشته اصلی توسط iman-63
      سلام دادا.
      مشکل اینجاست که عدد رو به رشته تبدیل نکردی. این کار رو با دستور ftoa از کتابخانه stdlib میتونی انجام بدی.
      فکر کنم کد زیر کارتو راه بندازه. اگه مشکلی بود در خدمتم
      کد:
           #include <stdlib.h>
           
           
           float t=1.5;
           char s[16],st[16];
           
           ftoa (t,3,s);
           sprintf(st,"%s",s);
           llcd_puts(str);
      آقا ممنون، اما من که گفتم فقط باید از تابع sprintf استفاده کنم.
      تقدیر تقویم انسانهای عادی ، تغییر تدبیر انسانهای عالیست.

      دیدگاه


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

        برای کار با float دستور spintf باید تنظیمش کنی
        project ==>configur==>C compiler==>sprint featers
        تنظیمش کن رو حالته
        float,width.........
        موفق باشی
        تو اين جهان 7 ميلياردي من معني ندارد و اگه تو اين دنيا فقط 1 نفر وجود داشت باز هم من معني نداشت

        دیدگاه


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

          نوشته اصلی توسط sey22
          برای کار با float دستور spintf باید تنظیمش کنی
          project ==>configur==>C compiler==>sprint featers
          تنظیمش کن رو حالته
          float,width.........
          موفق باشی
          آقا دستت دردنکنه، مشکل برطرف شد. :wow:
          لطف کردید.
          تقدیر تقویم انسانهای عادی ، تغییر تدبیر انسانهای عالیست.

          دیدگاه


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

            سلام تابع sprintf را بشکل صحیح ننوشته اید
            sprintf(s,"%f",f);
            جدیدترین ویرایش توسط haseli.esf@gmail.com; ۰۹:۱۰ ۱۳۹۸/۰۳/۲۷. دلیل: ضمنا باید در قسمت c compiler تنظیم ممیز شناور را تیک بزنید

            دیدگاه


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

              نوشته اصلی توسط sey22 نمایش پست ها
              برای کار با float دستور spintf باید تنظیمش کنی
              project ==>configur==>C compiler==>sprint featers
              تنظیمش کن رو حالته
              float,width.........
              موفق باشی


              ****
              سلام اقا من این کار رو هم انجام دادم ولی باز هم رو ال سی دیم چیزی نمایش داده نمیشه ایده ای برای رفع این مشکل دارید؟(طول عدد رو هم مشخص کردم ولی تاثیری نداشت)

              دیدگاه


                #8
                پاسخ : مشکل با تابع sprintf در کدویژن

                نوشته اصلی توسط Ali_HD نمایش پست ها
                ****
                سلام اقا من این کار رو هم انجام دادم ولی باز هم رو ال سی دیم چیزی نمایش داده نمیشه ایده ای برای رفع این مشکل دارید؟(طول عدد رو هم مشخص کردم ولی تاثیری نداشت)
                با سلام
                من خودم تا حالا با کدویژن کار نکردم ولی اغلب دوستانی که باهاش کارکردن اینجا زیاد از کارکردش راضی نبودن. یک کد در اینترنت دیدم که ادعا کرده با این روش مشکلی برای چاپ float در کدویژن نداره. به هرحال امتحانش ضرری نداره. موفق باشید.

                کد:
                {
                        char buffer[4];    // just fits 2.5
                        int m2on;
                
                        lcd_init(16);
                      	m2on = 25;
                      	delay_ms(2000);
                      	lcd_gotoxy(0, 1);
                      	sprintf(buffer, "%d.%d", m2on/10, m2on%10);
                      	lcd_puts(buffer);
                      	delay_ms(2000);
                      	lcd_gotoxy(8, 1);
                      	sprintf(buffer, "%3.1f", 3.9); // correct width format
                      	lcd_puts(buffer);
                      	delay_ms(2000);
                      	lcd_gotoxy(0, 0);
                      	lcd_putsf("Hello World");
                      	while (1) ;
                }

                دیدگاه


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

                  چرا مشکل که هست . این رو باید از کانفیگ تغییر بدیم تا بتونه بفرسته

                  دیدگاه

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