#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
ofstream file_testo;
file_testo.open("file_testo.txt",ios_base::out|ios_base::trunc);
file_testo << "Prova 1" << endl;
file_testo << "Prova 2" << endl;
file_testo.close();
ifstream file_testo_input;
string stringa;
file_testo_input.open("file_testo.txt",ios_base::in);
if (file_testo_input.is_open())
{
while (file_testo_input.good())
{
getline(file_testo_input,stringa);
cout << stringa << endl;
}
}
file_testo_input.close();
return 0;
}
giovedì 27 settembre 2012
Esempio di Vettori STL C++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector <int> vecInt(10,1); //crea un vettore di 10 posti mettendo 1 in ogni cella
int stampa()
{
int s;
cout << "------------------" << endl;
for (s=0; s < vecInt.size(); ++s) cout << vecInt[s] << endl;
cout << "------------------" << endl;
}
int main()
{
int t = 0;
cout << "Dimesione del vettore " << vecInt.size() << endl;
stampa();
// inserisce 10 nuovi valori in coda
for (t=1;t<=10;t++) vecInt.push_back(t);
// e mostra la nuova dimensione
cout << "Dimesione del vettore " << vecInt.size() << endl;
stampa();
//Modifica del valore di una posizione del vettore
cout << "Valore alla posizione 15: " << vecInt[15] << endl;
vecInt[15] = 0;
cout << "Valore alla posizione 15: " << vecInt[15] << endl;
//rimuove l'ultimo elemento dal vettore
cout << "Rimuove elemento" << endl;
vecInt.pop_back();
// e mostra la nuova dimensione
cout << "Dimesione del vettore " << vecInt.size() << endl;
stampa();
cout << "Inserisce elemento all'inizio ed alla fine" << endl;
vecInt.insert(vecInt.begin(),100);
vecInt.insert(vecInt.end(),200);
stampa();
cout << "Mette in ordine gli elementi" << endl;
sort(vecInt.begin(),vecInt.end());
stampa();
system("PAUSE");
return EXIT_SUCCESS;
}
#include <vector>
#include <algorithm>
using namespace std;
vector <int> vecInt(10,1); //crea un vettore di 10 posti mettendo 1 in ogni cella
int stampa()
{
int s;
cout << "------------------" << endl;
for (s=0; s < vecInt.size(); ++s) cout << vecInt[s] << endl;
cout << "------------------" << endl;
}
int main()
{
int t = 0;
cout << "Dimesione del vettore " << vecInt.size() << endl;
stampa();
// inserisce 10 nuovi valori in coda
for (t=1;t<=10;t++) vecInt.push_back(t);
// e mostra la nuova dimensione
cout << "Dimesione del vettore " << vecInt.size() << endl;
stampa();
//Modifica del valore di una posizione del vettore
cout << "Valore alla posizione 15: " << vecInt[15] << endl;
vecInt[15] = 0;
cout << "Valore alla posizione 15: " << vecInt[15] << endl;
//rimuove l'ultimo elemento dal vettore
cout << "Rimuove elemento" << endl;
vecInt.pop_back();
// e mostra la nuova dimensione
cout << "Dimesione del vettore " << vecInt.size() << endl;
stampa();
cout << "Inserisce elemento all'inizio ed alla fine" << endl;
vecInt.insert(vecInt.begin(),100);
vecInt.insert(vecInt.end(),200);
stampa();
cout << "Mette in ordine gli elementi" << endl;
sort(vecInt.begin(),vecInt.end());
stampa();
system("PAUSE");
return EXIT_SUCCESS;
}
mercoledì 26 settembre 2012
Installare i Codec (Mp3) su Debian
Per inserire i codec proprietari in Debian si deve aggiungere al file sources.list
deb http://www.deb-multimedia.org wheezy main non-free
Attenzione : il sito e' sempre debian-multimedia.org che e' diventato deb-multimedia.org (Debian ha richiesto che fosse rimosso il nome perche' non e' coinvolta in un progetto con codec proprietari). Molte guide riportano il vecchio dominio
deb http://www.deb-multimedia.org wheezy main non-free
Attenzione : il sito e' sempre debian-multimedia.org che e' diventato deb-multimedia.org (Debian ha richiesto che fosse rimosso il nome perche' non e' coinvolta in un progetto con codec proprietari). Molte guide riportano il vecchio dominio
apt-get update
apt-get install deb-multimedia-keyring
apt-get install libfaad2 libfaac0 alsamixergui twolame lame libmp3lame0 libdvdnav4 libdvdread4 libdvdcss2 w32codecs ffmpeg
Installazione minima per Wordpress con Lighttpd
Per avere un server su cui far lavorare Wordpress in pochi passi si puo' procedere cosi'
apt-get install mysql-server mysql-client
apt-get install lighttpd
apt-get install php5-cgi php5-curl php5-mysql
si modifica
vi /etc/php5/cgi/php.ini
aggiungendo
cgi.fix_pathinfo = 1
si modifica
vi /etc/lighttpd/lighttpd.conf
aggiungendo php5 fastcgi
server.modules = ( "mod_access", "mod_alias", "mod_accesslog", "mod_fastcgi", # "mod_rewrite", # "mod_redirect",
ed aggiungendo alla fine
fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php5-cgi", "socket" => "/tmp/php.socket" )))
infine si riavvia il server per caricare le modifiche
/etc/init.d/lighttpd restart
per la cronaca e' stato scelto lighttpd perche' pesa solo 350 Kb
martedì 25 settembre 2012
Eclipse CDT JUNO : Compilare in C++ con Autotools
Creare delle applicazione in C++ usando Eclipse CDT non e' esattamente banale... come esempio si riporta la compilazione del sorgente del precedente post sul calcolo di Pi Greco
Per prima cosa (ed e' forse il passo che si sbaglia piu' facilmente) si deve creare un nuovo progetto e selezionando Executable dalla lista di sinistra
Successivamente si clicca destro in Project Explorer sul nome del progetto Properties
Quindi C/C++ Build/Settings e si scende fino a leggere GCC C++ Linker/Libraries
Nella finestra a destra Libraries (-l) si clicca su simbolo + verde e si inserisce la libreria che si vuole linkare (escludendo il -l iniziale)
alla fine deve risultare cosi
Per terminare CTRL+B per ricostruire
In alcuni casi, nonostante un Project Clean, non viene risolta la nuova libreria per cui ci saranno degli errori segnalati nel codice..si risolve chiudendo e riaprendo Eclipse
Per prima cosa (ed e' forse il passo che si sbaglia piu' facilmente) si deve creare un nuovo progetto e selezionando Executable dalla lista di sinistra
Successivamente si clicca destro in Project Explorer sul nome del progetto Properties
Quindi C/C++ Build/Settings e si scende fino a leggere GCC C++ Linker/Libraries
Nella finestra a destra Libraries (-l) si clicca su simbolo + verde e si inserisce la libreria che si vuole linkare (escludendo il -l iniziale)
alla fine deve risultare cosi
Per terminare CTRL+B per ricostruire
In alcuni casi, nonostante un Project Clean, non viene risolta la nuova libreria per cui ci saranno degli errori segnalati nel codice..si risolve chiudendo e riaprendo Eclipse
Il programma eseguito |
Leggere Rss Feed in modalita' testo con NewsBeuter
Le istruzioni sono riprese da questo sito
Per leggere i Feed Rss con una interfaccia leggera si puo' utilizzare NewsBeuter che si trova gia' pacchettizzato all'interno di Debian
Per iscriversi ad un feed si puo' importare un file opml (newsbeuter -i file.opml) che si genera dall'esportazione di Google Reader (io ho fatto cosi') oppure si puo' creare ed editare il file urls che si deve mettere nella direcotory (./newsbeuter) con il formato di una url per riga di testo
creando il file ./newsbeuter/config si possono definire alcuni parametri tra cui il tempo di refresh
#ricarica feed in automatico
auto-reload yes
#ogni m minuti
reload-time 15
#conserva massimo n articoli per feed
max-items 150
#nell'elenco mostra anche i feed letti
show-read-feeds yes
#pulisci la cache quando esci
cleanup-on-quit no
Per leggere i Feed Rss con una interfaccia leggera si puo' utilizzare NewsBeuter che si trova gia' pacchettizzato all'interno di Debian
Per iscriversi ad un feed si puo' importare un file opml (newsbeuter -i file.opml) che si genera dall'esportazione di Google Reader (io ho fatto cosi') oppure si puo' creare ed editare il file urls che si deve mettere nella direcotory (./newsbeuter) con il formato di una url per riga di testo
Elenco dei feed in abbonamento |
Elenco dei post |
#ricarica feed in automatico
auto-reload yes
#ogni m minuti
reload-time 15
#conserva massimo n articoli per feed
max-items 150
#nell'elenco mostra anche i feed letti
show-read-feeds yes
#pulisci la cache quando esci
cleanup-on-quit no
Leggere GMail via testo con Alpine
Leggendo qua e la', ho scoperto che Google fornisce ai propri dipendenti una distribuzione Linux (sembra una Ubuntu) con cui leggere la posta su GMail in formato testuale quando la connessione di rete presenta dei problemi...in particolare si parlava di Pine
Ricordo che attorno all'anno 2000 usavo Pine sotto RedHat 7 come client di posta e mi e' venuta voglia di riprovarlo
Primo ostacolo: per problemi di licenza Debian non ha un pacchetto di Pine bensi' di Alpine, un client testuale del tutto simile all'originale
Istruzioni riprese dal sito http://www.wijeyesakere.com/tech/alpine/
per configurare il programma si deve andare in Setup/CollectionList/AddCltn ed inserire i seguenti valori
imap.gmail.com/ssl/user=USERNAME@GMAIL.COM
Poi si torna al menu principale/Setup Options/ e si impostano
SMTP server: smtp.gmail.com/novalidate-cert/user=USERNAME@GMAIL.COM/ssl
Inbox Path: imap.gmail.com/novalidate-cert/ssl/user=USERNAME@GMAIL.COM
Ricordo che attorno all'anno 2000 usavo Pine sotto RedHat 7 come client di posta e mi e' venuta voglia di riprovarlo
Primo ostacolo: per problemi di licenza Debian non ha un pacchetto di Pine bensi' di Alpine, un client testuale del tutto simile all'originale
Istruzioni riprese dal sito http://www.wijeyesakere.com/tech/alpine/
per configurare il programma si deve andare in Setup/CollectionList/AddCltn ed inserire i seguenti valori
imap.gmail.com/ssl/user=USERNAME@GMAIL.COM
Poi si torna al menu principale/Setup Options/ e si impostano
SMTP server: smtp.gmail.com/novalidate-cert/user=USERNAME@GMAIL.COM/ssl
Inbox Path: imap.gmail.com/novalidate-cert/ssl/user=USERNAME@GMAIL.COM
Mail InBox di GMail |
Folders di GMail |
Download di allegato da GMail |
Iscriviti a:
Post (Atom)
Change Detection with structural similarity
L'idea di base e' quella di cercare le differenze tra le due immagini sottostanti Non e' immediatamente visibile ma ci sono dei ...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...