Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-03-2011, 18:52   #1
skeleton
Member
 
L'Avatar di skeleton
 
Iscritto dal: Jul 2009
Messaggi: 81
[C++] Dato un testo risalire ai codici ASCII di ogni carattere

Salve a tutti,
avrei un problema che non riesco a risolvere. Preso un input da tastiera (un solo carattere), vorrei che questi venisse "analizzato" restituendomi il corrispettivo codice ASCII.
Ad esempio inserendo 'A' il programma deve restituirmi 65.

Questa è la parte del programma che ho scritto, ma che presenta un errore nella funzione "CodiceAsciiCarattere":
Codice:
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;

int CodiceAsciiCarattere(string car){
    int ascii;
    char carattere[1000];
    strcpy(carattere, car.c_str() ); 
    ascii = (int)carattere;
    return ascii;
}

main(){
       string a;
       cout<<"INSERIRE CARATTERE: ";
       getline(cin,a);
       cout<<"RISULTATO CONVERSIONE IN CARATTERI ASCII: "<<CodiceAsciiCarattere(a);
       cout<<"\a\nFINE PROGRAMMA";
       getch();
}
Riuscireste a trovare l'errore, per favore.
PS: preferirei usare la classe string per gestire il testo.

Grazie mille.

Ultima modifica di skeleton : 06-03-2011 alle 16:50.
skeleton è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2011, 22:35   #2
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Il problema è qui

Codice:
strcpy(carattere, car.c_str() ); 
    ascii = (int)carattere;
con la prima riga estrai un vettore zero terminated c-like dalla String e siamo d'accordo

ma nella seconda prendi l'entry point del vettore carattere e lo metti in una variabile int....quindi la conversione in ascii dov'è?

quello che devi fare è ciclare con un for su tutta la stringa e fare la conversione carattere per carattere, ad esempio

Codice:
for (i=0; i<strlen(carattere); i++) ascii[i] = int(carattere[i]);
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2011, 23:36   #3
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8226
Hemm, ma siete PPPPAAZZI?!?

Codice:
#include <iostream>
using namespace std;

int main()
{
    char a;
    cin >> a;
    cout << (int)a;
    
    system("pause");
    return 0;
}
Se proprio la vuoi vedere come funzione:
Codice:
#include <iostream>
using namespace std;

int converti(char a)
{
    return (int)a;
}
int main()
{
    char a;
    
    cin >> a;
    cout << converti(a);
    
    system("pause");
    return 0;
}
ascii = (int)carattere;

Carattere è un vettore, mica lo puoi assegnare tutto ad una variabile
__________________
System Failure

Ultima modifica di Perseverance : 05-03-2011 alle 23:42.
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2011, 23:37   #4
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
Il tuo più che altro è un errore concettuale, visto che stai usando una stringa per prendere un singolo carattere.
Quello che devi fare è questo:

Codice:
char c;
cin >> c;
cout << (int)c;
EDIT: Sono stato preceduto di un minuto.
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2011, 23:48   #5
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8226
Codice:
int CodiceAsciiCarattere(string car){
    int ascii;
    char carattere[1000];
    strcpy(carattere, car.c_str() ); 
    ascii = (int)carattere;
    return ascii;
}
Qui sopra il compilatore s'incazza di brutto. La puoi modificare così per ottenere la sequenza decimale di ascii:

Codice:
#include <blablabla>
int ascii[1000]; //Variabile vettoriale globale

void CodiceAsciiCarattere(string car){
    char carattere[1000];
    strcpy(carattere, car.c_str() );

    for(int i=0; i<1000; i++)
        ascii[i] = (int)carattere[i];
}
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 11:17   #6
skeleton
Member
 
L'Avatar di skeleton
 
Iscritto dal: Jul 2009
Messaggi: 81
Scusate la mia ignoranza in tema di array, ma a scuola abbiamo appena cominciato e devo fare ancora un po'di pratica. Mi sorge spontanea una domanda, se io devo convertire solo una lettera alfabetica per esecuzione di programma, posso impostare la funzione in questo modo? perchè si o perchè no?

Codice:
int CodiceAsciiCarattere(string car){
    int ascii[0];
    char carattere[1];
    strcpy(carattere, car.c_str() );
    ascii[0] = (int)carattere[1];
    return ascii[0];
}
Tantissime grazie per le vostre mille risposte.

Ultima modifica di skeleton : 06-03-2011 alle 11:30.
skeleton è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 13:28   #7
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
Così facendo crei un vettore "ascii" con 0 elementi (???). Non mi pare che la cosa abbia molto senso, tanto vale che crei una variabile normale.

Se vuoi estrarre il codice ASCII del primo carattere in una stringa basta fare così:

Codice:
int CodiceAsciiCarattere(string car)
{
    return (int)carattere[0];
}
Non c'è bisogno di creare una stringa e di copiare il contenuto lì dentro.
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 14:15   #8
skeleton
Member
 
L'Avatar di skeleton
 
Iscritto dal: Jul 2009
Messaggi: 81
Quote:
Originariamente inviato da Supdario Guarda i messaggi
Così facendo crei un vettore "ascii" con 0 elementi (???). Non mi pare che la cosa abbia molto senso, tanto vale che crei una variabile normale.

Se vuoi estrarre il codice ASCII del primo carattere in una stringa basta fare così:

Codice:
int CodiceAsciiCarattere(string car)
{
    return (int)carattere[0];
}
Non c'è bisogno di creare una stringa e di copiare il contenuto lì dentro.
Graize per il suggerimento, ma provando ho notato che il codice postato da te non funziona, perchè a qualsiasi numero binario inserito il riusultato è sempre 49.
skeleton è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 15:22   #9
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
a questo punto è obbligatorio chiedere: "ma l'input qual'è?"

perchè qui c'è chi come me ha capito che l'input è una stringa, chi invece ha capito che l'input è un singolo carattere

a seconda della situazione la routine cambia profondamente

se devi convertire una sequenza di caratteri in una sequenza di valori interi che rappresentano il codice ascii dei caratteri allora la soluzione è quella che ho detto io
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 16:49   #10
skeleton
Member
 
L'Avatar di skeleton
 
Iscritto dal: Jul 2009
Messaggi: 81
Quote:
Originariamente inviato da pabloski Guarda i messaggi
a questo punto è obbligatorio chiedere: "ma l'input qual'è?"

perchè qui c'è chi come me ha capito che l'input è una stringa, chi invece ha capito che l'input è un singolo carattere

a seconda della situazione la routine cambia profondamente

se devi convertire una sequenza di caratteri in una sequenza di valori interi che rappresentano il codice ascii dei caratteri allora la soluzione è quella che ho detto io
L'input è una stringa di un solo carattere.
skeleton è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 16:54   #11
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Perchè usi string per rappresentare un solo carattere?
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 16:56   #12
skeleton
Member
 
L'Avatar di skeleton
 
Iscritto dal: Jul 2009
Messaggi: 81
Mi scuso con tutti, ma per un mio errore ho affermato che il codice postato da Supdario era errato. Il programma, rivisto, invece sembra dare esiti positivi alle mie domande.
Ecco ciò che ne è risultato:
Codice:
int CodiceAsciiCarattere(string car){
    return (int)car[0]; 
}
main(){ 
       string a;
       cout<<"INSERIRE CARATTERE: ";
       getline(cin,a);
       cout<<"RISULTATO CONVERSIONE IN CARATTERI ASCII: "<<CodiceAsciiCarattere(a);
       cout<<"\a\nFINE PROGRAMMA";
       getch();
}
Mi scuso ancora con tutti e soprattutto con Supdario.

Grazie e a presto.
skeleton è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 18:06   #13
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8226
Sinceramente se tu fossi un programmatore non vorrei mai usare i tuoi programmi.

Il mio prof a robe così, anche se funzionanti stioccava un bel 3.
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
La Lexus LFA ritorna, ma è elettr...
Cristiano Ronaldo entra nell'intelligenz...
Wi-Fi 7 Mesh in ogni stanza: guida defin...
Hytale evita Steam al lancio per non ric...
Ritorna il bonus elettrodomestici: ripar...
La Russia blocca Snapchat e FaceTime: 'u...
Tesla FSD ora permette di scrivere messa...
Total War festeggia 25 anni: annunciato ...
Tante offerte Amazon rinnovate: sono ott...
Tanti articoli Apple scontati su Amazon:...
JBL a prezzi super: due modelli top tra ...
Sony e Bad Robot uniscono le forze: in a...
Il MIT rivela: l'IA può sostituir...
iPhone Air va in sconto: il nuovo iPhone...
Polaroid Now Gen 3 torna di moda: la fot...
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: 13:22.


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