Input from a newbie

ReneSac reneduani at yahoo.com.br
Sat Apr 7 17:50:47 PDT 2012


On Saturday, 7 April 2012 at 22:21:36 UTC, Jonas wrote:
>
> 5) What's wrong with this program? Is it that `printf` doesn't 
> understand D strings? If so, how do I use D strings in string 
> formatting?
>
> import std.stdio;
>
> string foo() { return "foobar"; }
>
> int main() {
>   printf("%s\n", foo());
>   return 0;
> }
>

You can use toStringz() from std.string to convert D strings to 
null terminated strings when you need to interface with C 
functions. But in this case, writeln() would be the simplest 
solution. It would be only:

writeln(foo());

Instead of:

printf("%s\n", toStringz(foo()));

I'm a newbie in D too, so correct me if there is anything wrong.


More information about the Digitalmars-d-learn mailing list