Si lo quieres meter todo en una cadena, podrías hacer algo así, porque con un fgets no se la verdad como controlar un EOF.
for(i=0, ch='a'; ch!=EOF || icad[i]='\0'; //Ahora no recuerdo si EOF era lo mismo que el \0
Creo que lo he dejado algo lioso, pero te servirá para practicar fors recargados xD
Saludos