Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm
ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm
ASUS e HIFIMAN uniscono le forze per creare ROG Kithara, cuffie gaming con driver magnetici planari da 100mm, design open-back e microfono MEMS full-band. Una proposta che ambisce a coniugare fedeltà per audiofili e performance ludiche, disponibili a 319 euro
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-02-2013, 16:34   #1
Stek78
Junior Member
 
Iscritto dal: Jun 2011
Messaggi: 25
[C/C++]Errore caricamento in matrice da file

Salve a tutti,
vi scrivo perché sto incontrando un problema nel caricamento di una matrice nrighe X 2 da un file di testo.
In pratica nel mio file ci sono numeri del genere:
103
520 2214
238 3031
3116 3437
4228 4848
4837 50

ma al momento del caricamento in matrice li carica in modo sbagliato, così:
10
3 5
20 22
14 23
8 30
31 31
16 34
37 42
28 48
48 48
37 50
naturalmente mi scombina tutto e mi restituisce un risultato sbagliato.
Mi potreste dare una mano a capire cos'è che mi da' questo problema?
Grazie
Stek78 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2013, 16:45   #2
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
Senza codice è un po come capire cos'è il rosso per un cieco
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2013, 23:34   #3
Stek78
Junior Member
 
Iscritto dal: Jun 2011
Messaggi: 25
Giusto!
Ecco il codice della fase di caricamento!
Codice:
unsigned int missioni[NRIGHE][2],arrayi[NRIGHE],nr=0,i=0,j=0,somma=0,tmp;
    int maxgio=-100,num=0;
    bool trovato=false,fine=false;
    
    FILE *fin,*fout;
    
    fin=fopen("input.txt","r");
    fout=fopen("output.txt","w");
    
    fscanf(fin,"%u",&nr);
    
    for(i=0;i<nr;i++){
                      
          for(j=0;j<2;j++){
                           
                fscanf(fin,"%u",&missioni[i][j]);  
                if(missioni[i][j]!=0){
                     num++;               
                }        
          }
       
    }
Stek78 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 05:43   #4
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Per curiosita' l'ho fatto girare e mi legge correttamente tutti i dati.
Ce l'hai detta proprio tutta? Scusa, intendevo dire: il file input.txt e' un file di testo? Non e' che l'estensione e' sbagliata e i dati sono in altro formato...
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 11:33   #5
Stek78
Junior Member
 
Iscritto dal: Jun 2011
Messaggi: 25
Strano che ti funzioni!
Mi sta facendo uscire matto questo codice!
E' un file di testo .txt, altrimenti neanche lo leggeva...!
Stek78 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 11:53   #6
Stek78
Junior Member
 
Iscritto dal: Jun 2011
Messaggi: 25
Compilo con Dev C++!
Perchè?
Stek78 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 12:12   #7
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
L'ho compilato con VS2005 (si, e' vecchio ma lo sono anch'io e per ora non mi hanno ancora buttato via). Funziona senza problemi.

Prova a pubblicare il file di testo completo, cosi' vediamo....
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 12:23   #8
Stek78
Junior Member
 
Iscritto dal: Jun 2011
Messaggi: 25
Quello nel primo post è il file di testo completo!
Stek78 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 12:28   #9
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Stek78 Guarda i messaggi
Quello nel primo post è il file di testo completo!
Scusa ma
Codice:
103
520 2214
238 3031
3116 3437
4228 4848
4837 50
non puo' essere il file completo, visto che il primo numero dice di leggere 103 coppie, ma ne conto solo 5. (Nel mio test ho modificato questo valore a mano)
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 12:37   #10
Stek78
Junior Member
 
Iscritto dal: Jun 2011
Messaggi: 25
Lo so' che può sembrar strano ma è un test datomi da fare e dice 103 righe quando poi ce ne sono solo 5(sta cosa non l'ho capita)infatti ho dovuto modificare il programma aggiungendo la variabile num che mi indica quanti numeri effettivamente ci sono...
Ma anche modificando quel parametro a me esce sbagliato il caricamento.
Boh.
Stek78 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 12:41   #11
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quindi, se scrivi 5 al posto di 103, come dovrebbe effettivamente essere, ottieni lo stesso una sequenza sbagliata?
Perdona l'insistenza ma e' necessario verificare. Cosi' come e' necessario aggiungere i controlli
- sull'apertura del file (fin != NULL);
- sul numero di elementi che vai a leggere con la fscanf(), cosi' da essere sicuri che l'elemento e' stato letto. Siccome leggi un elemento alla volta, fscanf() ti deve ritornare 1. Altrimenti c'e' un errore.

Quote:
Originariamente inviato da Stek78 Guarda i messaggi
Lo so' che può sembrar strano ma è un test datomi da fare e dice 103 righe quando poi ce ne sono solo 5(sta cosa non l'ho capita)infatti ho dovuto modificare il programma aggiungendo la variabile num che mi indica quanti numeri effettivamente ci sono...
Ma anche modificando quel parametro a me esce sbagliato il caricamento.
Boh.
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 12:48   #12
Stek78
Junior Member
 
Iscritto dal: Jun 2011
Messaggi: 25
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Quindi, se scrivi 5 al posto di 103, come dovrebbe effettivamente essere, ottieni lo stesso una sequenza sbagliata?

Quote:
Originariamente inviato da sottovento Guarda i messaggi
- sul numero di elementi che vai a leggere con la fscanf(), cosi' da essere sicuri che l'elemento e' stato letto. Siccome leggi un elemento alla volta, fscanf() ti deve ritornare 1. Altrimenti c'e' un errore.
Non ho capito cosa dovrei fare!Sorry!
Stek78 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 12:56   #13
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Stek78 Guarda i messaggi


Non ho capito cosa dovrei fare!Sorry!
Suggerivo di modificare leggermente il codice in modo da esser sicuri che le letture vadano a buon fine.
Insomma, c'e' qualcosa di strano se il tuo codice funziona sul mio computer e non sul tuo, pertanto devi cercare di ottenere piu' informazioni sull'errore.
Qui una libera interpretazione:

Codice:
unsigned int missioni[NRIGHE][2],arrayi[NRIGHE],nr=0,i=0,j=0,somma=0,tmp;
    int maxgio=-100,num=0;
    bool trovato=false,fine=false;
    int numReadItems;
    
    FILE *fin,*fout;
    
    fin=fopen("input.txt","r");
    if (fin == NULL)
    {
        perror ("Errore apertura input.txt. Errore:");
        return -1;
    }
//    fout=fopen("output.txt","w");
    
    numReadItems = fscanf(fin,"%u",&nr);
    if (numReadItems != 1)      // Deve ritornare 1 se tutto e' ok
    {
        printf ("Error reading tuple count\n");
        return -1;
    }
    
    for(i=0;i<nr;i++){
                      
          for(j=0;j<2;j++){
                           
                numReadItem = fscanf(fin,"%u",&missioni[i][j]);  
                if (numReadItem != 1)
                {
                    printf ("Error reading tuple [%d][%d]\n", i, j);
                    return -1;
                }

                if(missioni[i][j]!=0){
                     num++;               
                }        
          }
       
    }
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 13:36   #14
Stek78
Junior Member
 
Iscritto dal: Jun 2011
Messaggi: 25
Non mi restituisce nulla!
Stek78 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 13:39   #15
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Stek78 Guarda i messaggi
Non mi restituisce nulla!
Intendi che non vedi nessun errore e nonostante questo ottieni dei valori errati?
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 13:44   #16
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Senti, riesci a fare un attachment del tuo file di input?
Non sapendo cos'altro pensare, mi viene da verificare se ci siano dei caratteri "strani" (magari non printabili) nel file....
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 13:50   #17
Stek78
Junior Member
 
Iscritto dal: Jun 2011
Messaggi: 25
Sì non mi esce niente!
Allegati
File Type: txt input.txt (68 Bytes, 7 visite)

Ultima modifica di Stek78 : 11-02-2013 alle 13:54.
Stek78 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 14:22   #18
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 14:25   #19
Stek78
Junior Member
 
Iscritto dal: Jun 2011
Messaggi: 25
Scusa la mia ignoranza, cosa significa?
Stek78 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2013, 14:26   #20
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
ho aperto il tuo file in vi e mi da quegli ^M
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm ASUS ROG Kithara: quando HIFIMAN incontra il gam...
Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Area Science Park scommette sul deep tec...
Samsung presenta le nuove Galaxy Buds4 e...
Ecco la nuova serie Galaxy S26: Samsung ...
Ken il Guerriero e Ghost in the Shell: l...
Fallout 4 sbarca su Nintendo Switch 2: c...
BMW tratta con Bruxelles per liberare Mi...
NVIDIA, l'amara verità: zero H200...
Uomo morto intrappolato nella Xiaomi SU7...
HP: prezzi di DRAM e NAND raddoppiati, l...
Vodafone è la rete mobile più veloce d'I...
Iliad arriva a Sanremo con un hub tecnol...
Monitor gaming QD-OLED a prezzi mai vist...
Paramount aumenta l'offerta per acquisir...
Grazie ad ALMA di ESO catturata una nuov...
30.000 Pa e autopulizia a 100 °C: Dreame...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:04.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v