Problema codice C

di il
5 risposte

Problema codice C

Salve! Da poco ho iniziato a programmare in C, e sto trattando i file di testo.
Il seguente codice legge un file contenente su ogni riga una lettera, seguita da una sequenza di parole. Il programma dovrebbe stampare a video tutte le parole che iniziano con la prima lettera della riga.
Es:
A CASA MARE AUTO
B BOTTONE CASA CIAO
C NONNO AUTO
Output: AUTO, BOTTONE.

Il problema è che quando faccio partire il programma l'exe crasha subito dopo. Uso devc++.

#include <stdio.h>
#define MAX_SIZE 20

int main(){
FILE *documento;
char C, parola[MAX_SIZE], lettera=0;
if(documento=fopen("C:\\prog\\iniziali.txt", "r")!=NULL)
{

while(!feof(documento))
{
C=fgetc(documento);
while (lettera!='\n')
{
fscanf(documento, "%s", parola);
if (parola[0]!=C)printf("%s\n", parola);
lettera=fgetc(documento);
}
}
fclose(documento);
}
else
printf("Errore nella lettura del file\n");
}

5 Risposte

  • Re: Problema codice C

    Usa i tag code per postare il codice, altrimenti diventa difficile leggerlo, si perde tutta l'indentazione.
    Ad ogni modo per trovare il punto di crash ti suggerisco di inserire delle printf() (es. printf("1\n"); ... printf("2\n"); ...) nei vari punti per individuare il punto incriminato.
    Inoltre, se non sei proprio costretto ad usarlo, lascia stare Dev-C++!
  • Re: Problema codice C

    candaluar ha scritto:


    Usa i tag code per postare il codice, altrimenti diventa difficile leggerlo, si perde tutta l'indentazione.
    Ad ogni modo per trovare il punto di crash ti suggerisco di inserire delle printf() (es. printf("1\n"); ... printf("2\n"); ...) nei vari punti per individuare il punto incriminato.
    Inoltre, se non sei proprio costretto ad usarlo, lascia stare Dev-C++!

    Cosa mi consigli di usare??
  • Re: Problema codice C

    Questo è il codice:
    #include <stdio.h>
    #define MAX_SIZE 20
    
    int main(){
    	FILE *documento;
    	char C, parola[MAX_SIZE], lettera=0;
    	if(documento=fopen("C:\\prog\\iniziali.txt", "r")!=NULL)
    	{
    		while(!feof(documento))
    		{
    			
    			C=fgetc(documento);
    			while (lettera!='\n')
    			{
    			fscanf(documento, "%s", parola);
    			if (parola[0]!=C)printf("%s\n", parola);
    			lettera=fgetc(documento);
    			}
    		}
    		fclose(documento);
    	}
    	else
    	printf("Errore nella lettura del file\n");
    }
    Provando a mettere dei printf, mi accorgo che crasha prima di entrare nel ciclo while(!feof(documento)). Praticamente non lo esegue.
  • Re: Problema codice C

    Scrivi '(documento=fopen(...)) != NULL'

    NOTA LE PARENTESI!
  • Re: Problema codice C

    migliorabile ha scritto:


    Scrivi '(documento=fopen(...)) != NULL'

    NOTA LE PARENTESI!
    Ora il programma funziona ma mi da l'output sbagliato
Devi accedere o registrarti per scrivere nel forum
5 risposte