Arduino Stack Exchange is a question and answer site for developers of open-source hardware and software that is compatible with Arduino. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Hello I am using the u8glib library to draw text on the string but it keeps giving me an error with the string

 String name1 = "";
 ...
 void draw(){
  u8g.setFont(u8g_font_micro);
  u8g.drawStr(22, 37, name1);
 }

why dosnt this work?

Here is the error:

C:\Program Files (x86)\Arduino\libraries\U8glib/U8glib.h:200:16: note: no known conversion for argument 3 from 'int' to 'const __FlashStringHelper*' no matching function for call to 'U8GLIB_PCD8544::drawStr(int, int, String&)'

share|improve this question
    
Feel like sharing the error? – Ignacio Vazquez-Abrams Jan 17 at 9:33
    
ye I will do it now – user2279603 Jan 17 at 9:36

String is evil and should be avoided at all costs (http://hacking.majenko.co.uk/the-evils-of-arduino-strings)

The author of u8glib knows that and has refused (quite rightly) to implement them.

You should not use String either. If you really must for some obscure reason then you will have to pass the internal "C string" reference to the drawStr function instead of the whole String object:

u8g.drawStr(22, 37, name1.c_str());

The only reason people use String is because they are too lazy to learn the proper way of handling textual data in C.

share|improve this answer

Like the documentation says, that method doesn't take a String object. Call the c_str() method of the String object and pass that instead.

share|improve this answer
    
what do you mean, what should I put in my arduino code? I looked at the documentation and i cant see a c_str() method – user2279603 Jan 17 at 9:44
    
name1.c_str() – Majenko Jan 17 at 10:46

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.