Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   Basic C programming (http://www.go4expert.com/forums/basic-c-programming-t28567/)

vivekgupta 11Jun2012 16:39

Basic C programming
 
#include<stdio.h>
void main()
{
printf("%d",printf("Computer"));
}



has a output = 8

Why ? please explain someone.
:confused:

shabbir 11Jun2012 17:59

Re: Basic C programming
 
Can you explain what is %d used for and that would give you your answer.

pein87 11Jun2012 23:49

Re: Basic C programming
 
why are you making two calls to printf for? also you formating is returning the length of the text computer. Computer is 8 characters long. when using printf you need to use a format that goes with your data type. Your using decimal %d instead of string %s and making an additional call to printf as well. Try this

Code: C

#include<stdio.h>
void main()
{
printf("%s","Computer");
}


additionally you need to use some sort of debugger or make a scanf reference to see the output.

Code: C

#include<stdio.h>
void main()
{
printf("%s","Computer");
char i = scanf("i");
}


in practice you don't call scanf like that(without formatting) but it will exit the program one you press enter allowing you to check the output. I'd say use system("PAUSE"); but that is windows only.

xpi0t0s 12Jun2012 02:54

Re: Basic C programming
 
The code is valid, the output should actually be "Computer8". 8 is returned by printf, which returns the number of characters it prints.

vivekgupta 12Jun2012 13:07

Re: Basic C programming
 
Why dont we use '&' in the case of strings in function scanf ??

e.g. :-


scanf("%s",date);

here date is a character array means string.
There is no & before date :(
This the part of a code.


Plz help

xpi0t0s 12Jun2012 13:39

Re: Basic C programming
 
Because date is already a pointer.

annahussy 22Jun2012 16:37

Re: Basic C programming
 
Even I had the same question what vivek is asking to you? But, Now I got it that date is already a pointer then it should be use scanf("%s",date) like that. I am learning the C language, So this information will really be useful for me.

jraco11 26Jun2012 03:07

Re: Basic C programming
 
The ampersand symbol '&' otherwise known as the address operator takes in the address of a certain variable. the scanf function requires addresses so therefore the '&' is necessary for data types such as int, short, long, double, float, etc....the fact the date is already a pointer (variables that hold ONLY addresses), there is no need to use the '&' to retrieve the address since this is what they are already holding.


All times are GMT +5.5. The time now is 09:13.