Sponsored Content
Top Forums Programming What is the difference between printf and putchar() or scanf and getchar() ? Post 302739749 by Don Cragun on Tuesday 4th of December 2012 11:30:56 PM
Old 12-05-2012
Quote:
Originally Posted by kris26
Thanks, Corona and Don.

Don, while i was reading ur reply to figure out my mistake, i realize tat i<100 was juz a typo, i wanted to set it i<10. Btw, thanks for tis new lesson Smilie I wont quit programming, i feel it is fun to solve problem.

Corona, so i hav check out tis ASCII character set, yea i found tat 1st 16 character of ASCII character r non printable control characters. I wonder if 0 = 0, 1 = 1, 2 =2 and so forth, and '0' = 48, why will it bcome 1 when we minus '1' - '0' and not a non printable control characters? If we add '0' to 1, will it bcome bak '1' or as u said '0' = 48 and bcome 49?? How do dey differentiate it is a character set or an integer??

Sorry everyone who r trying to reply me. I feel tat im annoying, i hope tat u all don mind to answer my question Smilie
The C Standard requires:
Quote:
In both the source and execution basic character sets, the value of each character after 0 in the above list of decimal digits shall be one greater than the value of the previous.
The reference to the above list is the list of the ten decimal digits starting with 0 and followed in order the by the digits 1 through 9. In a C source program an integer valued decimal digit will never appear in quotes; the code representing the character zero will be in single quotes (e.g., '0') and the code representing the character zero when it is part of a string of characters will be in double quotes (e.g., "0369").

In ASCII the character '0' has decimal value 48 (as you already know). In EBCDIC the character '0' has decimal value 240. If you want to write code that will only work when using code sets with an ASCII base, you can convert convert a character c that represents one of the decimal digits to the corresponding decimal value using c - 48. If you want to write code that will only work when using an EBCDIC code set, you can use c - 240 for the same conversion. If you want to right an expression that will work with portably with ASCII, EBCDIC, or any other codeset supported for use by C on your system, you can use c - '0'.

Note that in C, '0' is a character but is also an integral value that can be used in an arithmetic expression. The integer constant 3 always has decimal value 3. The integer constant '3' has a decimal value that varies depending on what character set is being used. The integer value of the byte in a string that contains the character '6' has the same decimal value of the integer constant '6' which will alway be 6 more than the decimal value of the integer constant '0'.
This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

getchar()

hey everyone! got another problem here. how would i use the getchar() in a prompt: Press any key to continue the way i did it was to define a char variable named ch and then wrotechar ch ... ch = getchar(); printf("Press any key to continue"); getchar():if you press enter it exits, but... (2 Replies)
Discussion started by: primal
2 Replies

2. Programming

scanf with strings... please help

hi i am a beginner to C i have encountered a problem with my assignment, and i have researched it on the internet, but unfortunately i didn't find anything related to that. i am writing a simple program that takes user's input by prompt command, and parse the whole line into an array of... (1 Reply)
Discussion started by: inkfish
1 Replies

3. Programming

problem with scanf

hi all! i've written a simple c program: #include<stdio.h> #include<stdlib.h> int main() { int a; char b; char c; ... (4 Replies)
Discussion started by: mridula
4 Replies

4. Programming

diff in putchar(c) and printf("%c",c);

hi all , could any tell me the diffrence between main() { char c='h'; printf("%c",c); } and main() { char c = 'h'; printf("c",putchar(c)); } (2 Replies)
Discussion started by: useless79
2 Replies

5. Shell Programming and Scripting

Bash replacement to getchar

There's a replacement in bash for getchar or get functions of C and C++?Those functions read the next char avaliable in the input stream. I've tried something like: OLD_STTY=`stty -g` stty cbreak -echo look=`dd if=/dev/tty bs=1 count=1 2>/dev/null` stty $OLD_STTY But it is not working... (3 Replies)
Discussion started by: Asafe
3 Replies

6. Programming

Better than scanf

I don't know how to do this: printf("creazione nuovo messaggio\n"); printf("insert dest\n"); scanf("%s",dest); printf("insert object\n"); scanf("%s",ogg); printf("inserire text\n"); scanf("%s",test); ... (7 Replies)
Discussion started by: italian_boy
7 Replies

7. Programming

How to skip getchar in C?

Hi, I would like to read an input from keyboard using getchar. However, if no input (No Carriage return/new line none whatsoever) is given after say, 5 seconds, I would like to skip the getchar and move on. How do I do this in C. I'm using GNU compiler set. Thanks, (5 Replies)
Discussion started by: cprogdude
5 Replies

8. Programming

Help on getchar

I wanted to make a simple program that writes chracters in a file but i didnt want to press enter .So i found the getchar which doesnt need enter.If i pass (int) getchar to putc ,in the file it shows a P character.The (int) getchar says it is equal to1734747216 so i do (int) getchar-1734747216... (4 Replies)
Discussion started by: fireblast
4 Replies

9. Programming

How to kill disowned process which calls getchar() in code

Hi, What happens to process state when getchar() is called? I wrote a C code in which I call getchar() somewhere down the road. I forgot about that, I started the process, put it in bg and disowned it using "disown". Now, how do I see where that process has gone/how do kill it? Thanks, Amrut (1 Reply)
Discussion started by: 17amrut29
1 Replies

10. Shell Programming and Scripting

What's the difference between print and printf in command?

For example, in this command: ls /etc/rc0.d/ -print ls /etc/rc0.d/ -printfThe outputs are quite different, why? (7 Replies)
Discussion started by: Henryyy
7 Replies
All times are GMT -4. The time now is 07:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy