Code: #include<stdio.h> #include<string.h> int main() { int i; char line[100]; char line2[100]; printf("Enter some lines : "); scanf("%[^\n]",line); printf("2:"); scanf("%[^\n]",line2); if((i = strlen(line)) >= 80) { printf("%s",line); } if(strlen(line2) >= 80) { printf("%s",line2); } getchar(); return(0); } the main aim of making this program is that it will input 2 lines and output only that line that is 80 or more in length. errors :- 1. There is no compile error. 2. the second scanf(); function does not inputs. 3. No printf funtion occurs. help me run this program successfully. thanks in advance.
The problem happen by the '\n' of the line.Since it gets the input till the newline the entered '\n' will remain in the buffer . That '\n' will come as a input for the line2.It too get the input till the '\n' . So it comes out immediately . So you need to clear the '\n'.You can do this by getchar(). Code: #include<stdio.h> #include<string.h> int main() { int i; char line[100]; char line2[100]; printf("Enter some lines : "); scanf("%[^\n]",line); printf("2:"); getchar(); // Will get the "\n" in the buffer scanf("%[^\n]",line2); if((i = strlen(line)) >= 80) { printf("%s",line); } if(strlen(line2) >= 80) { printf("%s",line2); } getchar(); return(0); } But always don't use Code: scanf("%[^\n]",line2); Because it will cause the buffer overflow some times . Instead use fgets .