C language:scanning of input string is skipped inside for loop -
this question has answer here:
- scanf skips every other while loop in c 10 answers
whenever code executed, contents inside loop not executing first time, i.e., when i=0. loop executes after i=0, i.e., i=1,2,3,..n-1. can explain what's wrong here?
#include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { char string[30][100]; int n,i; scanf("%d",&n); for(i=0;i<n;i++){ gets(string[i]); printf("%s\n",string[i]); } getch(); return (exit_success); }
for(i=0;i<n;i++) { fflush(stdin); //clears buffer.insert here. gets(string[i]); printf("%s\n",string[i]); }
after execution of scanf("%d",&n);
leaving '\n'
(when press enter key @ end) character in buffer.which should cleared before execution of other input operation.fflush(stdin)
clear keyboard buffer. there many other ways it.but using fflush(stdin)
easy beginners.
Comments
Post a Comment