I am very new to c/c++ programming. i was writing a few lines of code and after compiling and running the program i did not receive the desired output. can you please help me in this matter.

/* Test.c */
#include <stdio.h>

main()
{
char i[30];
clrscr();
printf("Enter a name: ",i);
scanf("%s",i);
printf("The name is %s",i);
}

When I run the above program It prompts me to enter the name.

If I enter:

Debashish

(Debashish is my name).
it will display:

The name is Debashish

But if I enter:

Debashish Gupta

(My Full Name)
It will display Debashish and not Debashish Gupta.


Can anyone please tell me where am i wrong.

Dave Sinkula commented: Use code tags. +0
Re: wrong output in c program 80 80

The problem is that "scanf" reads the input until it meets a "\n" or a blank character. Try using a function that reads the whole line, like "gets".

Re: wrong output in c program 80 80

If you wanna program in C++ I think cin.getline() will work perfectly fine.

Re: wrong output in c program 80 80

just use fgets instead of scanf

Re: wrong output in c program 80 80

If you wanna program in C++ I think cin.getline() will work perfectly fine.

You're right, but I saw somewhere a comment "Test.c"... ;)

Re: wrong output in c program 80 80

You're right, but I saw somewhere a comment "Test.c"... ;)

OOPS I didn't have a look at that. I am really sorry. But if it was a C++ program wasnt my answer right?

Re: wrong output in c program 80 80

But if it was a C++ program wasnt my answer right?

Sure it was...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.19 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.