www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Problem with simple Formatted Input example.

reply "Venkat Akkineni" <venkatram.akkineni gmail.com> writes:
This simple program seems to just hang. I am probably missing 
something. Any help is appreciated. I am using Linux with DMD. 
Program compiles fine, but when enter a string & press enter, the 
programs seems to wait forever without returning.


import std.stdio;

void main()
{
	
	string firstName;
	readf("	%s\n", &firstName);
	writeln(firstName);
	
}


Thankyou
Venkat
Feb 07 2015
parent reply =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
On 02/07/2015 04:29 PM, Venkat Akkineni wrote:> This simple program 
seems to just hang. I am probably missing something.
 Any help is appreciated. I am using Linux with DMD. Program compiles
 fine, but when enter a string & press enter, the programs seems to wait
 forever without returning.


 import std.stdio;

 void main()
 {

      string firstName;
      readf("    %s\n", &firstName);
My earlier understanding was that readf was reading till the end of the input. So, you will see that it will terminate when you press Ctrl-D at the console. I explain that understanding here: http://ddili.org/ders/d.en/strings.html#ix_strings.readln However, when I tried your code again with dmd git head, I see that readf reads the first line of entry *after* I press two Enters on the console. Ali
Feb 07 2015
parent reply =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
On 02/07/2015 04:42 PM, Ali Çehreli wrote:

  >      readf("    %s\n", &firstName);
 I see that readf reads the first line of entry *after* I press
 two Enters on the console.
OK, that is related to the '\n' character that you have in the format string. Also, repeating the space characters has no effect as a single space means "zero or more white space" anyway. Ali
Feb 07 2015
parent "Venkat Akkineni" <venkatram.akkineni gmail.com> writes:
On Sunday, 8 February 2015 at 00:47:46 UTC, Ali Çehreli wrote:
 On 02/07/2015 04:42 PM, Ali Çehreli wrote:

  >      readf("    %s\n", &firstName);
 I see that readf reads the first line of entry *after* I press
 two Enters on the console.
OK, that is related to the '\n' character that you have in the format string. Also, repeating the space characters has no effect as a single space means "zero or more white space" anyway. Ali
Thankyou, I think it was encoded to be some other character instead of a space. Once I removed the space and re-added it to the string, things seem to work. I am reading your book. It is a great book for newbies. Thanks a lot for the effort.
Feb 07 2015