Esercizio: si scriva un programma che visualizzi tutte le righe in ingresso che superino gli 80 caratteri.
#include <stdio.h>
#define MAXLINE 1000
/*getline legge la riga succesiva del testo in ingresso;
deve segnalare l' eventuale fine del file (EOF)
deve restituire la lunghezza della riga letta o 0 se non vi sono altri dati in ingresso*/
int getline(char line[], int maxline);
int main()
{
int len; // lunghezza della riga corrente
char line[MAXLINE]; // riga corrente
while ((len = getline(line, MAXLINE)) > 10) {
printf("%s", line);
}
/*printf("%d", len);
printf("%s", line);*/
return 0;
}
// getline: legge una riga in ingresso, la assegna a s, ne restituisce la lunghezza
int getline(char s[], int lim)
{
int c, i;
for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
s[i] = c;
if (c == '\n')
{
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
Secondo voi vabene come ho risolto questo esercizio o poteva essere fatto meglio?
Il programma visualizza la riga subito dopo che l' hai inserita se ha più di 10 caratteri ma ci sarebbe un modo per inserire prima tutte le righe e poi alla fine visualizzare soltanto quelle che hanno più di 10 caratteri?