[C] programma conta linee

Pubblicità

stefano238

Utente Attivo
Messaggi
115
Reazioni
0
Punteggio
38
Buongiorno a tutti.
Apro questa discussione perchè sto cominciando ad imparare il linguaggio di programmazione C(sono proprio all'inizio). Il libro da cui lo sto studiando mi porta l'esempio di un programma che conta quante righe contiene il documento di testo che viene caricato col programma ed è questo
Codice:
#include <stdio.h>
/* conta le linee in input */

main()
{
       int c, nl;
       nl=0;
       while ((c=getchar()) != EOF)
             if (c=='\n')
                 ++nl;
        printf(%d\n", nl);
}
Il problema è che quando lo faccio partire con il terminale di windows tramite

nome_programma<file_testo.txt

mi da come risultato 0 anche se nel file di testo ci sono più di una riga
 
scusa ma dove e' l'istruzione per caricare il file di testo?

codice:
Ecco qui c e un esercizio al caso tuo che avevo fatto un po di tempo fa


/*
Contare quante righe ci sono in un file
24/09/2010
*/

#include <stdio.h> // consente l accesso alla tastiera e al video

int main () //(corpo principale del programma), restituisce un valore intero al sistema operativo
{
FILE *fp; // FILE = nome predisposto dal sistema (struttura dati) per lavorare sui file , fp =nome della variabile (a scelta)
int conta_righe=0; // contatore che conta quante righe ci sono nel file
char str[255]; //Stringa di appoggio

if ((fp = fopen("conta_righe.txt","r"))==NULL) // Controllo se il file esiste
{
printf("ERRORE");
}
else
{
while((fgets(str,255,fp))!=NULL) // fgets usa NULL per vedere se la lettura e' andata a buon fine, quindi a fine di ogni riga
conta_righe++;
}
fclose(fp); // chiude il file
printf("Nel file sono presenti %i righe ",conta_righe);
getchar();
return 0; // 0 = tutto ok
}
 
grazie, ma con la lettura del libro non sono arrivato ai comandi di codice che permettono di caricare i file direttamente dal programma stesso....

I file testo li carico dal terminale tramite il comando <nome_file_testo. A me interessava la parte di codice scritta dal libro cosa ha che non va...Sintatticamente è corretta ma non va.
 
il documento di testo è un .txt giusto? Perchè io l'ho provato con quello e mi da come risultato sempre 0 anche se sono andato a capo più volte all'interno del documento.
 
Ora provo .. cmq nel codice che hai postato c e un errore :

Codice:
#include <stdio.h>
/* conta le linee in input */

main()
{
       int c, nl;
       nl=0;
       while ((c=getchar()) != EOF)
             if (c=='\n')
                 ++nl;
        printf("%d\n", nl);
}

nella printf ci vogliono gli apici per la formattazione del testo
******************************************************

In piu nel terminale devi dare questa istruzione :
nome_programma.exe<nome_file.txt
con le estensioni scritte
 
Pubblicità
Pubblicità
Indietro
Top