Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema semplice per acquisire stringa C

    Buongiorno a tutti ragazzi/e
    Sono appena entrato su questo sito, sperando che possiate colmare le mie (grandi) lacune e problematiche in programmazione C

    Spero di aver scritto nel posto giusto, se così non fosse chiedo venia, in poche parole non riesco a acquisire una o più stringhe da un file e non riesco a capire dove sbaglio già dalla partenza per questo chiedo aiuto a voi che siete più esperti di me.

    Il "programma" è questo:

    #include <stdio.h>
    #include <stdlib.h>
    #define N 50


    void main()
    {
    int i=0;
    FILE *fs,*fp,*ft;
    char no[N]={};




    if(fp=fopen("NEMICI.txt","r")==NULL){
    fprintf(stderr,"Controllare i file");
    exit(1);
    }


    while(!feof(fp)){
    fscanf(fp,"%s",no);
    printf("%s",no);
    }
    }

    Dovrebbe acquisire solo i nomi da una lista ("NEMICI.txt) scritti neanche con lo spazio esempio Giuseppe_Pino

    Spero che mi possiate aiutare perchè proprio non cpascio il mio errore grazie infinite a tutti

  2. #2
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551
    scritti neanche con lo spazio esempio
    Ci deve essere uno spazio o un tab, perché la funzione "capisca dove termina una parola", se i nomi sono concatenati l'unica cosa che puoi leggere è la riga "testo fino a new line", ma hai un array di 50 caratteri, quindi sorge il problema che la stringa la "riga" non sta nell'array.

    Soluzioni , modifichi il file in modo tale che i nomi sono separati da uno spazio, o leggi l'intera riga tramite la funzione gets o meglio fgets, avendo cura di aumentare la dimensione dell'array di numero caratteri sufficienti, esempio 200...
    Tecnologia

  3. #3
    Mmmm capito grazie

    Alla fine il problema era una scemenza invece, al posto di scrivere: if((fp=fopen("NEMICI.txt","r"))==NULL) ho scritto if(fp=fopen("NEMICI.txt","r")==NULL) con delle parentesi in meno.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.