Qualcuno mi spiegherebbe perchè in questo programma ogni volta che premo invio lasciando la riga di input vuota esce? come risolvo?
#include <stdio.h>
#define MAXLINE 1000
#define MAXCHAR 10000
int getline(char r[], int maxline);
void copy(char line[],char nospaceln[]);
main()
{
char r[MAXLINE], line[MAXLINE], nospaceln[MAXLINE], result[MAXCHAR];
int i,w,gl;
w=0;
while (gl=getline(r,MAXLINE))
{
copy(r, nospaceln);
for (i=0;i<gl;i++)
{
result[w]=nospaceln[i];
w++;
}
result[w]='\n';
w++;
}
printf("%s \n", result);
return 0;
}
int getline(char s[],int maxl)
{
int i,len,cf,f;
f=0;
for(i=0;i<maxl && (cf=getchar())!=EOF && cf!='\n';++i)
{
if (cf!=' ' && cf!='\t')
{
s[f]=cf;
f++;
}
}
len=f;
return len;
}
void copy(char line[],char nospaceln[])
{
int i;
for (i=0;line[i]!='\0';i++)
{
nospaceln[i]=line[i];
}
nospaceln[i]='\0';
}
il risultato dovrebbe essere un programma che restituisca come output lo stesso input senza spazi, tab e senza righe vuote, per gli spazi e tab ci sono riuscito, ma se inserisco una linea vuota esce direttamente dal programma...