Software QA (13)
SQL Server (1)
I am reading a number with scanf and d, and then a string with gets
I'm reading a number with scanf and %d, and then a string with gets():
printf("enter a number: ");
printf("enter a string: ");
printf("you typed %d and "%s"\n", n, str);
but the compiler seems to be skipping the call to gets()!
If, in response to the above program, you type the two lines
scanf will read the 42, but not the newline following it. That newline will remain on the input stream, where it will immediately satisfy gets() (which will therefore seem to read a blank line). The second line, ``a string'', will not be read at all.
If you had happened to type both the number and the string on the same line:
42 a string
the code would have worked more or less as you expected.
As a general rule, you shouldn't try to interlace calls to scanf with calls to gets() (or any other input routines); scanf's peculiar treatment of newlines almost always leads to trouble. Either use scanf to read everything or nothing.
2015-10-23, 910👍, 0💬
How to reduce the final size of an executable file? Size of the final execuatable can be reduced usi...
How do we host a WCF service in IIS? Note: - The best to know how to host a WCF in IIS is by doing a...
How many bits are used to represent Unicode, ASCII, UTF-16, and UTF-8 characters? Unicode requires 1...
How To Merge Values of Two Arrays into a Single Array? - PHP Script Tips - PHP Built-in Functions fo...
What is DAR (Decision Analysis and Resolution) ? Decision Analysis and Resolution is to analyze poss...