element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum a simple "printf" function
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 20 replies
  • Answers 2 answers
  • Subscribers 677 subscribers
  • Views 3061 views
  • Users 0 members are here
  • raspberry_pi
Related

a simple "printf" function

Former Member
Former Member over 11 years ago

Hi all,

            Why all of my "printf" lines have these kind of errors:

stray "\302" in program

stray "\250" in program

stray "\" in program

 

I deleted the lines and typed again but still the same. I do not think there are some typo error as all the lines with the "printf" have errors.

 

Thanks,

 

Clem

  • Sign in to reply
  • Cancel
  • bprewit
    0 bprewit over 11 years ago

    Hi, Clem:

     

    These types of errors are typically caused by stray unprintable characters in the source; the compiler objects to them as they don't fit the defined syntax.

     

    It might be helpful if you posted the actual source code and corresponding error messages.

     

    HTH,

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago

    Another possible source of trouble, is terminal character encoding set. Maybe you are using ISO-8859, and program is using UTF-8, or viceversa.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • iagorubio
    0 iagorubio over 11 years ago

    Most likely, you've got a non-printable character in your code.

     

    You can see it opening the file in an hex editor.

     

    Long time ago when I wrote a developer text editor, I had a lot of troubles with weird text people copied from the web, and  then reported problems in how my program managed those chars.

     

    Also many people using shift+space and shift+ ... combinations inadvertently, ended up with weird non printable characters in their documents.

     

    To help me debug those I did a tiny executable to dump the offending parts. I'm posting it here but for a whole document the hex editor is much better.

     

    #include <stdio.h>

    #include <string.h>

    #include <errno.h>

     

    int main (int argc, char **argv)

    {

            FILE *f;

            int c, i=1;

     

            if( argc != 2 ){

                    printf("Ussage: %s file\n", argv[0]);

                    return 0;

            }

     

            f = fopen(argv[1],"r");

     

            if( f == NULL ){

                    printf("%s\n", strerror(errno));

                    return -1;

            }

            printf("%d: ",i);

            while((c = fgetc(f))!= EOF){

                    if( c == '\n') printf("\n%d:", ++i);

                    else printf( "'%c'=>'%d' ", c, c);

            }

            printf("\n");

            return 0;

    }

     

    It just dumps the decimal value of the character and the printable representation of that character.

     

    As example the output for a file containing the word "test", it would be:

     

    1: 't'=>'116' 'e'=>'101' 's'=>'115' 't'=>'116'

     

    It may help or not, and will for sure fail with UTF-8 or any multi byte encoding, but most source code is ascii.

     

    It helped me when trying to deal with those pesky non printable characters.

     

    Use it at your convenience.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 11 years ago in reply to iagorubio

    Iago Rubio wrote:

     

    Most likely, you've got a non-printable character in your code.

     

    You can see it opening the file in an hex editor.

    You can also use the GNU command "hd" (hex dump) at the command line.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to bprewit

    //Include standard io

    #include <stdio.h>

    #include <stdlib.h>

     

     

    //Include ArduPi library

    #include "arduPi.h"

     

     

    //Include the Marth library

    #include <math.h>

     

     

     

     

     

     

    //Needed for Serial Communication

    SerialPi Serial;

     

     

    //Needed for accessing GPIO (pinMode, digitalWrite, digitalRead,

    //I2C funcions)

    WirePi Wire;

     

     

    //Needed for SPI

    SPIPi SPI;

     

     

    //Values need for Steinhart-Hart equation

    //and calculating resistance.

    #define TENKRESISTOR 10000 //our 10K resistor

    #define BETA 4000 // This is the Beta Coefficient of your thermistor

    #define THERMISTOR 10000  //The resistance of your thermistor at room temp

    #define ROOMTEMP 298.15 // standard room temperature in Kelvin (25 Cesius).

     

     

    //Number of readings to take

    //these will be averaged out to

    //get a more accurate reading

    //You can increase/decrease this as needed

    #define READINGS 7

     

     

    int main() {

      setup();

      while(1) {

      loop();

      }

      return(0)    ;

    }

     

     

    void setup(void){

      printf(¨Starting up thermometer\n¨);

      Wire.begin();

    }

     

     

     

     

     

     

    void loop(void) {

      float avResistance;

      float resistance;

      int combinedReadings[READINGS];

      byte val0;

      byte val1;

     

     

      //Our temperature variable

      float kelvin;

      float fahrenheit;

      float celcius;

     

     

      int channelReading;

      float analogReadingArduino;

     

     

      /***********************

      ADC mappings

     

     

      Pin Adress

     

     

      0 0xDC

      1 0x9C

      2 0xCC

      3 0x8C

      4 0xAC

      5 0xEC

      6 0xBC

      7 0xFC

        ****************/

     

     

    //0xDC is our analop 0 pin

    Wire.beginTransmission(8);

    Wire.write(byte(0xDC));

    Wire.endTransmission();

     

     

    /* Grad the two bytes returned from the analog 0 pin, combine them

      and write the value to the combinedReadings array

    */

     

     

    for(int r=0; r<READINGS; r++) {

      Wire.requestFrom(8,2);

      val0 = Wire.read();

      val1 = Wire.read();

      channelReading = int(val0)*16 + int(val1>>4);

      analogReadingArduino = channelReading * 1023 / 4095;

      combinedReadings[r] = analogReadingArduino;

      delay(100);

    }

     

     

    //Grab the average of our 7 readings

    //in order to get a more accurate value avResistance = 0;

    for (int r=0; r<READINGS; r++) {

      avResistance += combinedReadings[r];

    }

    avResistance /= READINGS;

     

     

    /* We can now calculate the resistance of the readings that have come

    * back from analog 0

    */

    avResistance = (1023 / avResistance) - 1;

    avResistance = TENKRESISTOR /avResistance;

    resistance = avResistance / THERMISTOR;

     

     

    //Calculate the temperature in Kelvin

    kelvin = log(resistance);

    kelvin /= BETA;

    kelvin += 1.0 / ROOMTEMP;

    kelvin = 1.0 / kelvin;

    //printf(¨Temperature in K ¨);

    //printf(¨%f \n¨,kelvin);

     

     

    //Convert from Kelvin to Celsius

    celcius = kelvin -= 273.15;

    // printf(¨Temperature in C ¨);

    //printf(¨%f \n¨, celsius);

     

     

    //Convert from Celsius to Fahrenheit

    fahrenheit = (celcius * 1.8) + 32;

    //printf(¨Temperature in F ¨);

    //printf(¨%f \n¨, fahrenheit);

     

     

    //Three second delay before taking our next reading

    delay(3000);

    }

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • bprewit
    0 bprewit over 11 years ago in reply to Former Member

    Hi, Clem:

     

    On line 58 of your program the "quote" marks are encoded as 0xC2 0xA8 (Octal 302 and 250) rather than as 0x22 (the normal ascii quotation mark) .. actually, all of the quotation marks within the printf statements are that way, but as all of the other printf statements are commented out they're ignored by the compiler Interestingly enough the other quote marks were as expected.

     

    HTH,

     

    Bruce

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Reject Answer
    • Cancel
  • iagorubio
    0 iagorubio over 11 years ago in reply to Former Member

    Right on the spot Bruce.

     

    That happens a lot when you copy and paste from the web and Word Clem.

     

    What text editor are you using ?

     

    I've never seen a developer editor doing that, and on most of them syntax highlighting would be wrong with this code.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to iagorubio

    Hi Iago,

                I am very new to this platform and I am just following what was written in the book, I typed all of them manually, the book recommended to use Geany but it seems this is the culprit but in its bottom line, the mode = Unix; encoding: UTF-8.  What editor can you suggest please.

     

    Best regards,

     

    Clemzky

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to bprewit

    Hi Bruce,

                  Could you share how you managed to do that for the sake of the rest of newbies that might be reading this, as this will be very helpful.  What editor do you use?

    Bruce and Iago, thanks you guys for helping and spending time to answer my questions.

     

    Best regards,

     

    Clemzky

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Former Member

    Hi Iago, Bruce and John,

                                          Thank you for leading the way, now I can move on, for now I do not think of any Hex Editor, I just downloaded the Eclipse for windows and from there opened up my source code and bingo!! there are special characters, from there I edited the source accordingly and move it to Pi, compiled and works.  If my memory serves me right, there is Eclipse for Pi but not sure, now searching for it to be loaded in the PI as an editor and compiler. Kudos to all of you guys!!!!

     

    Best regards,

     

    Clemzk

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube