Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-10-2013, 15:34   #1
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
[C] Conversione di un intero in codice ASCII

Salve..
Vorrei chiedervi se ho un numero intero e voglio risalire al suo codice ASCII come devo fare??
con i caratteri è facile, basta leggere ogni carattere con %d, ma dato che gli interi gia vengono letti con %d, come faccio a stampare il codice ASCII di un numero intero??

Oppure devo per forza dichiarare la variabile in stringa?

Ultima modifica di Lucariello96 : 28-10-2013 alle 15:41.
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 15:50   #2
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Lucariello96 Guarda i messaggi
Salve..
Vorrei chiedervi se ho un numero intero e voglio risalire al suo codice ASCII come devo fare??
con i caratteri è facile, basta leggere ogni carattere con %d, ma dato che gli interi gia vengono letti con %d, come faccio a stampare il codice ASCII di un numero intero??

Oppure devo per forza dichiarare la variabile in stringa?
Suggerimento, guarda la posizione dei caratteri numerici nella tabella ASCII:
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 15:54   #3
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
lo so quindi?
ho provato con la stringa di caratteri e i numeri nn riesco a leggerli..
non so come fare a leggere questi cavolo di numeri... potreste scrivermi come fare per favore?
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:00   #4
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Ma tu sei quello che ha 9 in informatica? Mi sa che il tuo prof. è un po' largo coi voti Poi però avrai 0 in matematica...cosa alquanto strana dato che sono collegate sotto molti aspetti.

Ti è stata postata la tabella ascii, sono 255 caratteri. Basta fare una semplice operazione matematica.

Saluti.

Ultima modifica di airon : 28-10-2013 alle 16:04.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:08   #5
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Se apprendo le cose le faccio subito mie.. se mi dite come fare..
cmq in matematica è vero che sono poco buono
cmq forse ho capito basta aggiungere 48 al numero?
però io volevo capire se c'era un comando per farlo automatico...
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:14   #6
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Si abbiamo capito che apprendi facilmente ma qui si tratta di logica...non di apprendere una nozione matematica o istruzione C che per quello che devi fare non esiste.

Detto questo,
non capisco però perché ti serve sta cosa. Se tu chiedi con la scanf un carattere, quindi usi %c...puoi immettere anche un numero e quindi la printf che usi (con %d) ti stampa il codice ascii giusto anche dei numeri, è matematica...

Se invece sei obbligato ad usare nella scanf il %d, quindi un numero, ci sei arrivato, +48
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:23   #7
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Guarda non so se hai letto il post principale dove ho scritto " Oppure devo per forza dichiarare la variabile in stringa?"
Lo sapevo che posso farlo con la stringa, infatti così l'avevo fatto... e anche con il +48 l'avevo capito.. il fatto e che volevo sapere solo se c'era un comando per farlo automaticamente visto che nel C non finisco mai di scoprire nuovi comandi che automatizzano molte operazioni...
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:26   #8
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Usiamo i giusti termini. In C il tipo stringa non esiste. Quello che tu fai lo fai con un carattere (tipo char).

Alla tua domanda ho risposto, non esiste una funzione della libreria. Non avrebbe nessun senso.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:27   #9
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Piuttosto ora mi è apparso un altro dubbio... se voglio utilizzare la tecnica +48, come faccio ad utilizzarla sui singoli numeri?
cioè ho il numero 2354, come lo scompongo in numeri singoli?
se per le stringhe utilizziamo %c e lavoriamo sui caratteri delle stringhe per un numero intero come si fa?
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:32   #10
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Nel caso di un numero composto da più cifre dipende da come lo prendi in input. Se prendi un numero anche qui è matematica...fai un ciclo e una divisione per prenderti le singole cifre. (Ti lascio a te scroprire come).

Se invece prendi una stringa (%s), dovrai usare un vettore (ma dubito tu li abbia studiati).

Ultima modifica di airon : 28-10-2013 alle 16:37.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:44   #11
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Forse divido per 10 100 1000 ecc... e prendo solo la parte intera del numero??
cmq per la stringa già ho risolto...
per la stringa uso un vettore stringa, e lo vado a leggere in un doppio ciclo, nel ciclo esterno vado a calcolare quanti elementi ha quel campo del vettore usando strlen(vett[i]), e poi nel ciclo interno scompongo i caratteri singoli con %c e utilizzando vett[i][j] ...
a tutto questo ci sono arrivato con la "logica" e senza spiegazioni, ne niente..
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:48   #12
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
No. La divisione che hai in mente non va bene...tu non sai quante cifre ha il numero.

Devi usare due divisioni matematiche. La divisione resto (operatore %) e la divisione normale. La prima ti prende l'ultima cifra, l'altra (sempre /10) di toglie (essendo un intero) sempre l'ultima cifra...fai un ciclo finché quella divisione è 0 (cioè hai tolto tutte le cifre...).

Per la parte relativa alla stringa...non so come possa funzionare. La stringa ha una dimensione [i]. Perché usi una stringa con due dimensioni (matrice)? [i][j].

Ti basta un solo indice in un unico for/while.

PS. Studia, anche matematica. La divisione con resto dovresti saperla in quarta superiore. Senza matematica di programmi non ne scrivi. Non serve a nulla sapere tutte le funzioni standard del C.

Ultima modifica di airon : 28-10-2013 alle 16:53.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:53   #13
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Saprai bene che quando dichiari una stringa usi char stringa[50][50]..
dichiari il max dei campi che può avere una stringa e il max dei caratteri che può contenere ogni campo... ebbene provando da me, ho dedotto di lavorare normalmente sul vettore, ma quando mi serve singolo apro un ciclo annidato dove faccio scorrere carattere per carattere di ogni campo....
Codice:
for(i=0;i<n;i++){
    x=strlen(stringa[i]);
             for(j=0;j<x;j++){
                 printf("%c ",stringa[i][j]);
                 }
                   }
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:56   #14
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Quella non è una stringa ma un vettore di vettori (singola stringa).

Tu stai dichiarando una matrice 50x50, ovvero 50 righe [i] lunghe 50 caratteri ciascuna [j]. (50 righe per 50 colonne)

Poi se rileggi bene quello che hai scritto: "il max dei campi che può avere una stringa" che vuol dire?"

Edito: ho visto ora il codice ed è corretto ma non si capisce perché tu lo debba usare. Stavamo parlando di semplici stringhe. Non di N stringhe prese in input e messe per non si sa quale motivo (non ce lo hai detto) in quella struttura.

PS.Come tu possa avere 9 in sistemi/informatica non l'ho ancora capito. Davvero, non prenderlo come un'offesa, ma studia, soprattuto su un supporto che ti fa fare tutto per gradi, hai una grande confusione in testa.

Ultima modifica di airon : 28-10-2013 alle 17:01.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 17:01   #15
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
none... la matrice di una stringa si dichiara con 3 dimensioni tipo char stringa[50][50][50]... io non lavoro sulle dimensioni riga e colonna, ma lavoro su dimensione di riga e di caratteri... cmq già lo fatto e mi funziona...
sto facendo un programma che permetta di convertire tra di loro numeri stringhe codice ASCII, codice Esadecimale, e poi credo aggiungerò binario e ottale..
Cmq per quanto riguarda la divisione per resto già ci ho lavorato sopra.. però non ho ben capito come funziona come hai detto tu... non potresti scrivere il codice così mi è più chiaro?

PS: io voglio capire le cose in modo semplice...poi me le vado ad applicare io...
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 17:09   #16
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Quote:
Originariamente inviato da Lucariello96 Guarda i messaggi
none... la matrice di una stringa si dichiara con 3 dimensioni tipo char stringa[50][50][50]...
Ma che è sta roba? Siamo passati ad un bel cubo?
Quella è una matrice a 3 dimensioni.

Ora tu sei in 4 superiore e da quello che si evince non sai molto, fino a prova contraria so più di te sicuramente

char stringa[] = "ciao"; // non servono le altre dimensioni
char stringa_1[20]; //stringa lunga al max 20 caratteri

Per l'operatore % vallo a studiare da solo e poi torna.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 17:17   #17
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Già le conosco le stringhe oddio...
char stringa (Variabile stringa con 1 carattere unico)
char stringa [20] (Variabile stringa con max 20 caratteri)
char stringa [20][20] (Vettore stringa con 20 campi e caratteri)
char stringa [20][20][20] (Matrice 20x20, con ogni campo max 20 caratteri)

ricordati che c'è sempre una dimensione che dichiara il numero di caratteri!!

e il % , ovvero il modulo per calcolare il resto già lo conosco e già lo utilizzato.. esempio 10%2 = 10:2= 5 con resto di 0 --> 10%2=0.. se c'era resto è uguale a 1

Ultima modifica di Lucariello96 : 28-10-2013 alle 17:20.
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 17:32   #18
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Io mi ricordo benissimo e so cosa sono quelle dichiarazioni.

Il fatto di dovere usare per quello che devi fare una matrice anche solo a 2 dimensioni (non scomodiamo quella a 3) denota che hai perso pezzi per strada.

Prova a fare %10 e vedi che succede...poi fai /10 e vedi che succede e poi fai ancora %10 e così via.

Ultima modifica di airon : 28-10-2013 alle 17:35.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 17:43   #19
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
ancora con questa matrice!! XD
non è una matrice!! lavoro sui caratteri, hai pure detto che ho fatto bene prima..
cmq ti ripeto per l'ennesima volta so a cosa serve il modulo... %10 ti divide il numero per 10 e poi ti calcola il resto che è compreso tra 0 e 9.. /10 invece divide semplicemente per 10 e ti dice quanto fa senza darti il resto..
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 18:00   #20
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Lucariello96 Guarda i messaggi
char stringa (Variabile stringa con 1 carattere unico)
char stringa [20] (Variabile stringa con max 20 caratteri)
char stringa [20][20] (Vettore stringa con 20 campi e caratteri)
char stringa [20][20][20] (Matrice 20x20, con ogni campo max 20 caratteri)
Non ho capito questa parte...
In particolar modo la terza e quarta riga. Secondo la tua interpretazione cosa dovrebbero rappresentare?
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Snapdragon X2 Elite Extreme, il cuore de...
Snapdragon 8 Elite Gen 5 è il nuovo rife...
Bombe Apple su Amazon: iPhone di scorsa ...
Micron: memoria HBM4 a 11 Gbps e patto d...
NVIDIA rende Audio2Face open source: ecc...
Logitech Signature Slim Solar K980+: 10 ...
Disney Plus aumenta i prezzi: si parte d...
Intel XeSS con Multi Frame Generation: u...
iPhone 16 a soli 700€ su Amazon: stile e...
Signature Slim Solar+ K980, la nuova tas...
Logitech MX Master 3S, il mouse perfetto...
Borderlands 4 per Switch 2 rinviato a te...
Reddit studia con Google una partnership...
La Ferrari elettrica che sembra una DeLo...
Xiaomi presenta una miriade di nuovi pro...
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: 04:24.


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