Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-07-2017, 15:54   #1
Sciannaro
Member
 
Iscritto dal: May 2013
Messaggi: 48
[C] Confronto di variabili contenute in stringhe

Salve ragazzi, sono alle prime armi col linguaggio C ed ho questo dubbio sicuramente stupido, ma sto veramente uscendo pazzo!!!

Lavoro su DEV C++ in windows 7 ed ho questo estratto di codice facente parte di una funzione di un programma più esteso:

Codice:
void Primo_avvio (double risultato, char nome_file[6]) {

double EX_00 = 22534.123760, EX_01 = 22495.512703, EX_02 = 22473.934324, EX_03 = 22530.549507, EX_04 = 22573.553029, EX_05 = 22375.578006, EX_06 = 22592.371874, EX_07 = 22542.299911, EX_08 = 22505.151334, EX_09 = 22375.266978;


if (risultato == * nome_file) printf("\n\nOK\n\n");
else printf("\n\nQualcosa e' andato storto\n\n");

return;
}
In pratica la funzione Primo_avvio() riceve dal main() la variabile risultato ed una stringa contenente il nome del file da dove ha letto il risultato senza l'estensione (quindi la variabile nome_file può valere EX_00, EX_01, EX_02, EX_03, etc. fino ad EX_09). Ora io vorrei fare il confronto tra la variabile risultato ed il valore corrispondente al nome di quelle dichiarate nella funzione. Ho provato come postato sopra, ma ovviamente non funziona. Come mi consigliate di procedere?

Grazie anticipatamente a tutti!!!
Sciannaro è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2017, 17:06   #2
Sciannaro
Member
 
Iscritto dal: May 2013
Messaggi: 48
Innanzitutto grazie della risposta!!

Quei double, sono delle costanti di controllo. Mi spiego meglio.

Io ho nove file chiamati "EX_00.txt", "EX_01.txt", "EX_02.txt", "EX_03.txt", "EX_04.txt", "EX_05.txt", "EX_06.txt", "EX_07.txt", "EX_08.txt", "EX_09.txt",
il programma nel main() legge uno di questi file, mettiamo il file "EX_00.txt", esegue delle operazioni e ne scrive il risultato nella variabile risultato. Fatto ciò il main() sa che nel nome_file = EX_00 ha ottenuto un determinato risultato e deve controllare che sia identico ad una costante tra quelle dichiarate, dunque se legge il file EX_00.txt dovrà confrontarlo con la dichiarazione EX_00, se legge il file EX_06.txt dovrà confrontarlo invece con la dichiarazione EX_06 e via dicendo.
Per fare questo controllo ho creato una funzione apposita, ma non riesco a fare capire al programma che deve confrontare la variabile risultato con il valore corrispondente al nome del file tra quelli dichiarati!!!

P.S. adesso che me ne fai accorgere effettivamente lui per *nome_file restituisce 69 che è il codice ascii del carattere E, ma perchè? Non dovrebbe restituirmi il valore che punta?
Io pensavo che *nome_file fosse il puntatore di nome_file e che quindi, se nome_file vale "EX_00", mi restituisse il valore puntato da nome_file ovvero 22534.123760!! Evidentemente ho supermegatoppato.......
Sciannaro è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2017, 20:52   #3
Sciannaro
Member
 
Iscritto dal: May 2013
Messaggi: 48
Scusa se rispondo adesso, ma sono stato fuori. Ho provato il codice da te postato ed assolve benissimo ciò che mi serviva, ma ho tre domande da farti:

1) Perché imposti idx_val a -1? Anche se levo il -1 funziona lo stesso tranquillamente.

2) La funzione atoi non la conoscevo proprio e, se non ho capito male, essa serve a convertire la stringa in un intero, giusto? Questa funzione è portabile? E' una di quelle standard?

3) Aggiungi il +3 perché a noi ci serve l'indice dell'array, ma se convertissi tutta la stringa, cosa mi restituirebbe la funzione atoi? Il relativo codice ASCII oppure semplicemente non funziona?

Prometto che non ti stresso più!!!!
Sciannaro è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2017, 14:43   #4
Sciannaro
Member
 
Iscritto dal: May 2013
Messaggi: 48
Ti ringrazio tantissimo per l'aiuto e le spiegazioni. Sei stato gentilissimo. Per me il problema è risolto!!

Grazie ancora!
Sciannaro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
Avio si prepara ai test del Dimostratore...
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: 11:17.


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