PROBLEMA Conversione in C

Madg96

Nuovo Utente
138
8
Salve ragazzi sto facendo questo progetto per l università in cui devo creare il gioco del tris su server in modo che sia accessibile da un numero arbitrario di client, oltre a questo devo creare una classifica dei giocatori su file txt e ovviamente ordinarla in ordine crescente di vittorie. Ho riscontrato un problema di conversione creando questa classifica in pratica ho utilizzato la funzione fgets per prendere la riga della classifica (es ciro 2 vittorie 1 pareggio 0 sconfitte) Posto la foto del codice commentato e i risultati. Non capisco perchè facendo prov[j] = res dentro prov mi mette un altro valore rispetto a quello che mi aspetto nonostante siano due array di char.
Nella foto dei risultati mi aspetto che res sia = a 4 come giustamente viene mostrato mentre al posto di quel 52 dovrebbe esserci un altro 4 dato che è il valore di prov[0]. Credo che sia un errore di conversione/assegnamento perchè quando res = 4 prov = a 52 se nel file txt cambio 4 con 5, res = 5 mentre prov = 53 e cosi via. Qualcuno ha qualche soluzione ? spero abbiate capito qualcosa dato che è un pò contorta come situazione. Grazie a tutti.
 

Allegati

  • WhatsApp Image 2021-08-06 at 17.03.04.jpeg
    WhatsApp Image 2021-08-06 at 17.03.04.jpeg
    198.7 KB · Visualizzazioni: 40
  • WhatsApp Image 2021-08-06 at 17.03.49.jpeg
    WhatsApp Image 2021-08-06 at 17.03.49.jpeg
    152.5 KB · Visualizzazioni: 42

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,210
1,845
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Il codice va postato utilizzando il tag CODE qui sul forum. E puoi fare la stessa cosa con risultati/errori.
Oltretutto così non possiamo nemmeno provarlo ed è scomodo correggerti.

Parli di numeri, ma allo stesso tempo usi char e stampi a video dei caratteri. Sicuro il valore nella cella non può cambiare da un'istruzione all'altra, se non viene sovrascritto.

Ma ripeto: pubblica qui il codice, così possiamo vedere. ?
 
  • Mi piace
Reazioni: Andretti60

Andretti60

Utente Èlite
6,440
5,091
il tuo parsing e' sballato, in quanto supponi che il numero sia una cifra sola. Quello che devi fare e' "spezzare" la stringa letta in un vettore di stringhe, usando lo spazio come separatore. Guarda la documentazione della funzione strtok()
 
  • Mi piace
Reazioni: DispatchCode

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!