Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- # Casting
- Il casting è il cambio temporaneo di tipo. Si reinterpreta il significato di una variabile.
- - Si può cambiare temporaneamente da una lettera ad un numero (secondo la tabella dei caratteri)
- - Si può cambiare uno dei 2 operandi, se entrambi interi, con un float per renderlo frazionario.
- Esistono 2 tipi di casting: esplicito ed implicito:
- - Il casting esplicito si fa con le parentesi tonde specificando il tipo
- - Il casting implicito lo fa il compilatore quando i tipi di dato non sono compatibili tra loro, ma esiste un processo di conversione.
- Es di sintassi del casting esplicito:
- double a;
- int b = 3, c = 5;
- a = b/c;
- a = (float) b / c; //a risulterà un float
- //OPPURE
- a = b / (char) c;
- (Nel primo esempio si casta b da int a float e nel secondo si casta c da int a char)
- Es di sintassi del casting implicito:
- int d = (float) b / c
- Il valore del risultato finale sarà un int e una volta calcolato eliminerà la parte frazionaria che era stata calcolata dalla divisione.
- Tabella dei codisci ASCII (conversione da numero a char):
- ![enter image description here](https://cdn.discordapp.com/attachments/444558751488409602/671366991482716160/7AsciiPrnChr.png)
- ---
- # Libreria (Cin & Cout)
- Una libreria è un insieme di funzioni già scritte in passato e pronte per essere utilizzate.
- Nel C++ ci sono varie librerie standard. Es:
- #include \<iostream>
- La firma di una funzione seguita da ";" è chiamata anche "Prototipo".
- Per creare una libreria bisogna aggiungere dei file al progetto. Vengono aggiunti (almeno) 1 file ".cpp" e uno ".h". Il file ".cpp" avrà al suo interno una funzione o un comando scritto da noi. Il file ".h" avrà al suo interno il prototipo per richiamare la funzione del ".cpp". Nel caso in cui entrambi i file abbiano lo stesso nome (ovviamente con l'estensione diversa) saranno collegati tra loro.
- All'interno del file ".cpp" dovrà essere incluso il file ".h"(Es: #inlcude "NomeLibreria.h"). Quindi sarà possibile richiamare una determinata funzione del file ".cpp" richiamando la libreria nel nostro file "main" / "origine" scrivendo:
- #include "NomeLibreria.h".
- Il nome della libreria si scrive tra i doppi apici perché dovrà essere cercato all'interno della cartella del programma.
- ## Libreria standard
- Questa gerarchia si chiama std::ios
- ![enter image description here](https://cdn.discordapp.com/attachments/444558751488409602/671718934910599173/Schema_informatica.png)
- ---
- # Stringhe
- Le stringhe non sono un tipo primitivo. Si usa con "string". Serve a contenere più caratteri.
- Es di sintassi di una stringa:
- ``` cpp
- #include <string>
- #include <iostream>
- using namespace std;
- int main() {
- string Parola = "Qualcosa";
- string Parola2 = "AltreParole";
- cout << Parola << endl; //stampa la stringa
- cout << Parola.length() << endl; //stampa la lunghezza
- cout << Parola + Parola2 << endl; //concateni le stringhe
- cout << Parola[2] << endl; //stampa la lettera nella 3° cella
- /* Per confrontare non si usa l'if, ma il "compare"
- (restituisce un intero).
- Nell'esempio usiamo l'if per controllare se sono uguali
- confrontando lo 0 come risultato. */
- if (Parola.compare(Parola2)==0) {
- /* controlliamo se le parole sono uguali. Se restituisce
- 0 come numero intero le parole sono uguali. Se
- restituisce un altro numero corrisponderà al numero delle
- lettere diverse tra le stringhe */
- }
- }
- ```
- Es di come scrivere una stringa con gli spazi:
- ```cpp
- /* Fai in modo di richiamare una funzione per stampare ogni volta
- il nome, cognome e classe dell'alunno che ha inserito i dati.
- #############
- Nome e Cognome Alunno
- Classe Alunno
- ############# */
- #include <string>
- #include <iostream>
- using namespace std;
- void StampaIntestazione(string x, string y) {
- cout << "#############" << endl;
- cout << "Alunno: " << x << endl;
- cout << "Classe: " << y << endl;
- cout << "#############" << endl;
- }
- //Se non si usa getline allora string considererà lo spazio
- //come un cambio di stringa (una stringa diversa)
- int main() {
- string Nome, Classe;
- cout << "Inserisci il tuo nome" << endl;
- getline(cin,Nome);
- //getline è una funzione all'interno della libreria string.
- cout << "inserisci la tua classe" << endl;
- getline(cin, Classe);
- cout << "Benvenuto" << endl;
- StampaIntestazione(Nome, Classe);
- }
- ```
- # Stampa su file (lettura e scrittura)
- Es di scrittura su un file:
- ``` cpp
- //Stampa su il tuo nome su un file.
- #include <string>
- #include <iostream>
- #include <fstream> //libreria necessaria per stampare su file
- using namespace std;
- int main() {
- string Nome = "Vittorio";
- //fstream NomeVariabileFile("Nomefile.txt", ios::out);
- fstream Testo("Nome.txt", ios::out);
- /* Abbiamo aperto un file in modalità scrittura.
- ios::out = modalità di scrittura di base. Se il file non
- esiste viene creato, se no viene sovrascritto. */
- if (Testo.is_open()) {
- //NomeVariabileFile.is_open()
- Testo << Nome;
- }
- else {
- cout << "Errore di apertura" << endl;
- }
- //NomeVariabileFile.close();
- Testo.close();
- /* Si verifica che il file non sia già aperto perché può
- essere modificato da un solo programma alla volta. Alla fine
- si chiude per poterlo sbloccare. */
- }
- ```
- Es di lettura su un file:
- ``` cpp
- //Stampa il tuo nome su un file.
- #include <string>
- #include <iostream>
- #include <fstream> //libreria necessaria per stampare su file
- using namespace std;
- int main() {
- string Nome = "Vittorio";
- fstream Testo("Nome.txt", ios::out);
- /* Abbiamo aperto un file in modalità scrittura.
- ios::out = modalità di scrittura di base. Se il file non
- esiste viene creato, se no viene sovrascritto. */
- if (Testo.is_open()) {
- Testo << Nome;
- }
- else {
- cout << "Errore di apertura" << endl;
- }
- Testo.close();
- }
- ```
- ---
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement