[C] programma conta linee

stefano238

Utente Attivo
115
0
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
 

alfo1

Utente Attivo
86
4
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
}
 
  • Like
Reactions: stefano238

stefano238

Utente Attivo
115
0
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.
 

Mr Storm

Utente Attivo
77
19
CPU
Intel Core i5 750
Scheda Madre
Asus P7P55D Deluxe
HDD
500 GB
RAM
Corsair 8GB DDR3 1600 MHz
GPU
Sapphire HD5850
Monitor
Asus VK222H 22"
PSU
OCZ ModXstream Pro 700W
OS
Windows 7 Professional x64
Mmh, ho provato a testarlo ed effettivamente a me funziona... non capisco perché non ti vada!
 

stefano238

Utente Attivo
115
0
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.
 

alfo1

Utente Attivo
86
4
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
 

alfo1

Utente Attivo
86
4
E' strano , a me funziona benissimo; ma hai compilato il programma e dal cmd fai partire il .exe ?
 

Entra

oppure Accedi utilizzando

Hot: E3 2021, chi ti è piaciuto di più?

  • Ubisoft

    Voti: 30 22.4%
  • Gearbox

    Voti: 2 1.5%
  • Xbox & Bethesda

    Voti: 87 64.9%
  • Square Enix

    Voti: 10 7.5%
  • Capcom

    Voti: 6 4.5%
  • Nintendo

    Voti: 18 13.4%
  • Altro (Specificare)

    Voti: 12 9.0%

Discussioni Simili