473,396 Members | 1,859 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

How do I print a 0 in the beginning?

I have this:

#include <stdio.h>

int main (void)
{

int number;

printf ("Enter number: ");
scanf ("%i", &number);
printf ("%05i", number);

return 0;
}

So, if i enter a number like '00768', it should print out the same
'00768'. But its not doing that...its printing out 5 zeros instead.
I have tried using %06d, %.5i, %.5d in the printf statement. None of
them work properly. I can't use any bigger functions, just printf to
do this. Thanks.
Feb 16 '06 #1
7 9051
gk245 explained :
I have this:

#include <stdio.h>

int main (void)
{

int number;

printf ("Enter number: ");
scanf ("%i", &number);
printf ("%05i", number);

return 0;
}

So, if i enter a number like '00768', it should print out the same '00768'.
But its not doing that...its printing out 5 zeros instead.
I have tried using %06d, %.5i, %.5d in the printf statement. None of them
work properly. I can't use any bigger functions, just printf to do this.
Thanks.


woops, sorry, i meant if you typed in a number like 5674, it would add
a zero in front of it, and give a final result of 05674.
Feb 16 '06 #2
"gk245" <to*****@mail.com> writes:
int main (void)
{

int number;

printf ("Enter number: ");
scanf ("%i", &number);
printf ("%05i", number);

return 0;
}

So, if i enter a number like '00768', it should print out the same
'00768'. But its not doing that...its printing out 5 zeros
instead.


00768 does not have the value 768 when parsed by %i on scanf().
It has the value 62. This is because the leading 0 makes it an
octal constant. The trailing 8 is, I believe, ignored.

Use %d instead of %i to force scanf() to read your integer as a
decimal constant.
--
"For those who want to translate C to Pascal, it may be that a lobotomy
serves your needs better." --M. Ambuhl

"Here are the steps to create a C-to-Turbo-Pascal translator..." --H. Schildt
Feb 16 '06 #3
"gk245" <to*****@mail.com> writes:
gk245 explained :
#include <stdio.h>

int main (void)
{

int number;

printf ("Enter number: ");
scanf ("%i", &number);
printf ("%05i", number);

return 0;
}
[...]

woops, sorry, i meant if you typed in a number like 5674, it would add
a zero in front of it, and give a final result of 05674.


So: you want it to print out exactly what you typed in? Then
read it as a string and print it as a string. If you read and
print it as an integer, leading zeros won't be retained, because
they are not part of the value of an integer.
--
"Give me a couple of years and a large research grant,
and I'll give you a receipt." --Richard Heathfield
Feb 16 '06 #4
Ben Pfaff wrote on 2/16/2006 :
"gk245" <to*****@mail.com> writes:
int main (void)
{

int number;

printf ("Enter number: ");
scanf ("%i", &number);
printf ("%05i", number);

return 0;
}

So, if i enter a number like '00768', it should print out the same
'00768'. But its not doing that...its printing out 5 zeros
instead.


00768 does not have the value 768 when parsed by %i on scanf().
It has the value 62. This is because the leading 0 makes it an
octal constant. The trailing 8 is, I believe, ignored.

Use %d instead of %i to force scanf() to read your integer as a
decimal constant.


Alright, thx. It looks like i have to do it as a character then.
Feb 16 '06 #5

gk245 wrote:
I have this:

#include <stdio.h>

int main (void)
{

int number;

printf ("Enter number: ");
scanf ("%i", &number);
printf ("%05i", number);

return 0;
}

So, if i enter a number like '00768', it should print out the same
'00768'. But its not doing that...its printing out 5 zeros instead.
I have tried using %06d, %.5i, %.5d in the printf statement. None of
them work properly. I can't use any bigger functions, just printf to
do this. Thanks.


Inputting a number with leading zeroes, I guess, converts it to an
octal number. Easy way out here would be to read the number as a string
probably using fgets().

Feb 17 '06 #6
"Jaspreet" <js***********@gmail.com> writes:
gk245 wrote:
I have this:

#include <stdio.h>

int main (void)
{

int number;

printf ("Enter number: ");
scanf ("%i", &number);
printf ("%05i", number);

return 0;
}

So, if i enter a number like '00768', it should print out the same
'00768'. But its not doing that...its printing out 5 zeros instead.
I have tried using %06d, %.5i, %.5d in the printf statement. None of
them work properly. I can't use any bigger functions, just printf to
do this. Thanks.


Inputting a number with leading zeroes, I guess, converts it to an
octal number. Easy way out here would be to read the number as a string
probably using fgets().


Scanf's "%i" format expects a string in the same format expected by
strtol() with a base of 0, which means a number with a leading 0 is
treated as octal and a number with a leading 0x or 0X is treated as
hexadecimal. If you only want decimal input, use "%d". (Better yet,
don't use scanf(); use fgets() and parse the input line with
sscanf().)

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
Feb 17 '06 #7
Keith Thompson wrote on 2/16/2006 :
"Jaspreet" <js***********@gmail.com> writes:
gk245 wrote:
I have this:

#include <stdio.h>

int main (void)
{

int number;

printf ("Enter number: ");
scanf ("%i", &number);
printf ("%05i", number);

return 0;
}

So, if i enter a number like '00768', it should print out the same
'00768'. But its not doing that...its printing out 5 zeros instead.
I have tried using %06d, %.5i, %.5d in the printf statement. None of
them work properly. I can't use any bigger functions, just printf to
do this. Thanks.


Inputting a number with leading zeroes, I guess, converts it to an
octal number. Easy way out here would be to read the number as a string
probably using fgets().


Scanf's "%i" format expects a string in the same format expected by
strtol() with a base of 0, which means a number with a leading 0 is
treated as octal and a number with a leading 0x or 0X is treated as
hexadecimal. If you only want decimal input, use "%d". (Better yet,
don't use scanf(); use fgets() and parse the input line with
sscanf().)


Yeah, the thing was i couldn't use functions like fgets() or sscanf().
Only allowed to use scanf() and printf(). I thought %d treated numbers
entered beginning with a 0 as ocatal too...trying to figure out what
the difference is between %d and %i.
Feb 18 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

30
by: Martin Bless | last post by:
Why can't we have an additional 'print' statement, that behaves exactly like 'print' but doesn't insert that damn blank between two arguments? Could be called 'printn' or 'prin1' or 'prinn'...
23
by: stewart.midwinter | last post by:
No doubt I've overlooked something obvious, but here goes: Let's say I assign a value to a var, e.g.: myPlace = 'right here' myTime = 'right now' Now let's say I want to print out the two...
6
by: Wim van Rosmalen | last post by:
I've upgraded MS-Access 2002 to a MS-Access Project (adp), so now I have to deal with more sophisticated queries (may I call them so?) like stored procedures. I have a form with a combobox for...
2
by: jamesthiele.usenet | last post by:
I recently ran into the issue with 'print' were, as it says on the web page called "Python Gotchas" (http://www.ferg.org/projects/python_gotchas.html): The Python Language Reference Manual says,...
2
by: Randy | last post by:
Hello all, I'm trying to print using PrintPreviewDialog. What's happening is that the PrintPreviewDialog shows the correct information to be printed, but when I click the print icon, it prints a...
2
by: Yuriy | last post by:
Hello! I need to print PDF Document by clicking a button on .aspx page. The PDF should be printed on client printer without displaing it on the window. I tried Process namespace but it doesn't...
1
by: hosi | last post by:
Hi, suppose I want to print third record from a subform. The problem is, that when I want to print what I see on my monitor (third record), the print preview resets the form to the first record...
2
by: Phoe6 | last post by:
print and softspace in python In python, whenever you use >>>print statement it will append a newline by default. If you don't want newline to be appended, you got use a comma at the end (>>>print...
11
by: Gord | last post by:
When I open a certain report, it runs some code that generates the records that will be displayed in that report. This works fine. When I go to print preview the report it appears that the code...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.