Aerys II Inviata 10 Giugno 2008 Segnala Inviata 10 Giugno 2008 La mia idea è questa: ok non intasare l'area di topic troppo specifici, ma meglio non mischiare troppo le due branche principali delle necessità di chi vive casini informatici, ossia il supporto hardware/software (banalmente: ho un problema e voglio aiuto) e l'aiuto teorico (come quello che richiederò tra poco). Intendo dire che Help Desk va benissimo come topic dove chiedere "Ehy, mi sta per esplodere l'HD, come posso fare?" o "Non parte NWN2, aiutatemi!", ma per questioni più metafisiche è meglio prendersi un angolino in disparte. Eccolo qui. Non sono rari topic in cui qualcuno chiede dritte su C, Pascal, HTML e altro, dunque perché non creare un topic "raccoglitore" come riferimento ai programmatori o presunti tali? Spero condividiate... Comincio con una richiesta stupidissima ma dettata dai numerosi anni di inattività: come faccio in C++ a mantenere fisso l'output di un run finché mi pare? In Pascal avevo l'amico repeat until keypressed (l'ho provato prima, mi ricordo ancora Pascal dopo tipo sette anni! ), ma in C++ proprio non ricordo. Correggetemi questo, in parole povere, dicendomi che cavolo andava al posto dell'asterisco. Dannata memoria... #include <iostream.h> void main () { cout<<"Ciao DL!"; * } Superato questo scoglio, è tutto in discesa.
molmoth Inviato 11 Giugno 2008 Segnala Inviato 11 Giugno 2008 se non ricordo male al posto dell' * dovresti mettere char key; cin >> key; ciao
Dusdan Inviato 11 Giugno 2008 Segnala Inviato 11 Giugno 2008 Comincio con una richiesta stupidissima ma dettata dai numerosi anni di inattività: come faccio in C++ a mantenere fisso l'output di un run finché mi pare? In Pascal avevo l'amico repeat until keypressed (l'ho provato prima, mi ricordo ancora Pascal dopo tipo sette anni! ), ma in C++ proprio non ricordo. cos'e` che vuoi fare? comunque: #include <iostream> using namespace std; int main () { out<<"Ciao DL!"; * return 0; } meglio
Shar Inviato 11 Giugno 2008 Segnala Inviato 11 Giugno 2008 Cercando su Google mi dicono: puoi usare un system("pause>nul"); oppure un while(getchar()!='\n');
Dusdan Inviato 11 Giugno 2008 Segnala Inviato 11 Giugno 2008 puoi usare un system("pause>nul");questo e` un accrocchio oppure un while(getchar()!='\n');e questo e` C se mi spiegasse cosa vuole fare... se vuole solo aspettare che qualcuno prema un tasto il codice di molmoth dovrebbe essere giusto.
Aerys II Inviato 11 Giugno 2008 Autore Segnala Inviato 11 Giugno 2008 Sì, a me bastava tenere a schermo un "Ciao DL!" finché l'utente non preme un tasto. Eh, di C++ proprio non mi ricordo una fava a quanto vedo. Ma presto riprenderò mano. Danke! EDIT: Inciso per i programmatori vintage ma non troppo: ho realizzato con orrore che la funzione sound(); di TurboPascal non funziona più... Nessuno conosce un'alternativa valida in TP? Io ci tenevo al caro vecchio sound(262); delay(800); nosound;
likeblue Inviato 12 Giugno 2008 Segnala Inviato 12 Giugno 2008 Se vuoi che la scritta rimanga finché non si preme un tasto generico, prova con la funzione kbhit(): #include <iostream.h> #include <conio.h> // credo serva per kbhit() void main () { cout<<"Ciao DL!"; while(! kbhit()); // aspetta finché non premi un tasto. Se non funziona prova con while(kbhit()) }
Dusdan Inviato 12 Giugno 2008 Segnala Inviato 12 Giugno 2008 Se vuoi che la scritta rimanga finché non si preme un tasto generico, prova con la funzione kbhit(): #include <iostream.h> #include <conio.h> // credo serva per kbhit() void main () { cout<<"Ciao DL!"; while(! kbhit()); // aspetta finché non premi un tasto. Se non funziona prova con while(kbhit()) } das ist C, kein C++
likeblue Inviato 12 Giugno 2008 Segnala Inviato 12 Giugno 2008 das ist C, kein C++ Mo l'ho preso dalle dispense di C++ del Hmeljak... (e poi se la memoria non mi inganna funzionava...)
Dusdan Inviato 12 Giugno 2008 Segnala Inviato 12 Giugno 2008 Mo l'ho preso dalle dispense di C++ del Hmeljak... (e poi se la memoria non mi inganna funzionava...) - per funzionare funziona, perche` in C++ puoi usare quasi tutto il C, con trucchi piu` o meno squallidi - hmeljak non ha mai capito una mazza di C++
Aerys II Inviato 12 Giugno 2008 Autore Segnala Inviato 12 Giugno 2008 Ah, while(); ecco come si chiamava! Hmeljak è uno strano ominide, ma io gli volevo bene.
Dusdan Inviato 12 Giugno 2008 Segnala Inviato 12 Giugno 2008 Ah, while(); ecco come si chiamava! Hmeljak è uno strano ominide, ma io gli volevo bene. non e` while(), ma while. non e` una funzione ma una keyword.
likeblue Inviato 12 Giugno 2008 Segnala Inviato 12 Giugno 2008 - per funzionare funziona, perche` in C++ puoi usare quasi tutto il C, con trucchi piu` o meno squallidi - hmeljak non ha mai capito una mazza di C++ Il fine giustifica i mezzi... (anche se fa inorridire gli esperti di programmazione...)
Aerys II Inviato 12 Giugno 2008 Autore Segnala Inviato 12 Giugno 2008 Ragazzi, a questo punto mi preoccupo parecchio, forse il compilatore è impazzito? Voglio dire, Borland Builder non mi fa funzionare nemmeno Hello World... Ho provato il sistema cin>>key; ho provato la versione "ibrida" suggerita da likeblue, ho provato diverse soluzioni ma niente: Borland da un segnale di vita ma nulla appare. O meglio, qualcosa succede di sicuro, ma tuto svanisce subito. Idee? Io proprio non so cosa credere: all'inizio pensavo di essere un deficientone io, e lo sono, ma qui il problema penso sia un altro... Scusate il post doppio, se i Mod me l'accorpassero sarei un ometto felice. Problema strambo: voglio usare Emacs per tutto, dunque anche per comporre documenti Latex in ambiente Windows. Come faccio a inserire la tilde? Mi spiego: essendo il tasto alt molto usato in Emacs, il signorino si pensa bene di impedirmi il tipico alt+126. Esistono alternativa Windowsiane con tastiera italiana per inserire il simboletto in questione? Lo so che se avessi una tastiera forestiera potrei farlo agevolmente, come so che se fossi in ambiente GNU/Linux (o forse proprio in ambiente Unix like) potrei utilizzare combinazioni differenti (che per inciso includerebbero in almeno un caso alt, dunque probabilmente sarebbero fastidiose allo stesso modo), ma devo lavorare con ciò che passa al convento al momento, e anche se non dovessi io voglio essere in condizioni di poter lavorare su ogni macchina mi si presenti con Emacs, dunque mi occorre risolvere questo problema della tilde anche su Windows. Suggerimenti? Ecco un ometto felice
Aerys II Inviato 21 Luglio 2008 Autore Segnala Inviato 21 Luglio 2008 Uppo (sperando che Arghot mi faccia di nuovo felice ) per segnalare l'editor collaborativo Gobby, utile per quanti vogliano una mano a programmare online e si fidino di far mettere le mani a qualcuno sui loro filessssssssssss...
Shar Inviato 21 Luglio 2008 Segnala Inviato 21 Luglio 2008 Problema strambo: voglio usare Emacs per tutto, dunque anche per comporre documenti Latex in ambiente Windows. Come faccio a inserire la tilde? Mi spiego: essendo il tasto alt molto usato in Emacs, il signorino si pensa bene di impedirmi il tipico alt+126. Esistono alternativa Windowsiane con tastiera italiana per inserire il simboletto in questione? Lo so che se avessi una tastiera forestiera potrei farlo agevolmente, come so che se fossi in ambiente GNU/Linux (o forse proprio in ambiente Unix like) potrei utilizzare combinazioni differenti (che per inciso includerebbero in almeno un caso alt, dunque probabilmente sarebbero fastidiose allo stesso modo), ma devo lavorare con ciò che passa al convento al momento, e anche se non dovessi io voglio essere in condizioni di poter lavorare su ogni macchina mi si presenti con Emacs, dunque mi occorre risolvere questo problema della tilde anche su Windows. Suggerimenti? Provato con i tasti funzione o con PageDown? Sul terminale dicono funzionino, non so su Emacs.
Aerys II Inviato 25 Settembre 2008 Autore Segnala Inviato 25 Settembre 2008 Pongo una questione che sarà banale e per risolvere la quale basterà di sicuro rileggere un capitolo di manuale, ma sono fuso dalla giornata e avere una risposta pronta mi gioverebbe. Ho la necessità, in C++, di leggere da console un ID di quattro lettere, rendere minuscole le lettere eventualmente maiuscole digitate dall'utente (voglio un programma idiot proof), e utilizzare la stringa ottenuta per modificare delle altre stringhe. Mi spiego: devo assegnare delle costanti di questo tipo, che corrispondano a dei file chiamati tutti allo stesso modo e distinti all'interno del file system solo dal nome della cartella superiore, cartella il cui nome corrisponde all'ID richiesto all'utente: const *char NomeFile1="Percorso_fino_alla_cartella_superiore/ABCD/nome_file1"; const *char NomeFile2="Percorso_fino_alla_cartella_superiore/ABCD/nome_file2"; ... const *char NomeFileN="Percorso_fino_alla_cartella_superiore/ABCD/nome_fileN"; L'utente di cui sopra scrive l'ID, e il valore delle N stringhe costanti deve essere modificato inserendo lo stesso al posto delle ABCD nell'esempio qui sopra. Pensavo a una cosa tipo: char a[5]; cin>>a; char *b=strlwr(a); E fin qui nessun problema. A questo punto per infilare quei quattro caratteri nella stringa io che devo fare? Pensavo di inizializzare una stringa variabile del tutto identica alla costante che poi definirò, modificare quella con l'ID "minuscolizzato" ottenuto e settare finalmente il valore della stringa costante come uguale a quello della stringa variabile modificata. Più o meno funziona? Per infilare quei fo**uti quattro caratteri che devo fare? Io punterei verso il carattere della stringa precedente ad ABCD per poi copiarli lì. Corretto? Come mi muovo? Scusate, come ho già detto so che è una domanda scema ma non ho avuto tempo/voglia di rivedere alcuni concetti...
Dusdan Inviato 25 Settembre 2008 Segnala Inviato 25 Settembre 2008 santa madre, ma chi ti ha insegnato a programmare? 1) i char * sono il demonio, non devi MAI usarli, ma proprio MAI. 2) usa string e stream vari. 3) no, i char * non li puoi usare.
Aerys II Inviato 25 Settembre 2008 Autore Segnala Inviato 25 Settembre 2008 Premetto che ho fatto quello che volevo fare, più o meno così. char leggi[5]; cin>>leggi; const char *id=strlwr(leggi); const char *intest="Percorso_fino_alla_cartella_superiore"; char nome_f[9]; strcpy(nome_f, id); strcat(nome_f, ".txt"); char NameVar1[120]; strcpy(NameVar1, intest); strcat(NameVar1, id); strcat(NameVar1, "/file_da_caricare.estensione"); const char* SurfName1=NameVar1; Il tutto ripetuto per ciascuna variabile. Funzionare funziona. Ora veniamo alla questione Dusdanica, che mi interessa davvero assai. santa madre, ma chi ti ha insegnato a programmare? Nessuno, vecchio mio: sai bene chi mi ha fatto lo pseudo-corso di Informatica il primo anno, mister Hmeljak. Dopo anni di stop, praticamente ho ricominciato da zero questa estate. []1) i char * sono il demonio, non devi MAI usarli, ma proprio MAI. 2) usa string e stream vari. 3) no, i char * non li puoi usare. Ribadendo ancora che sono passati diversi anni da quando programmavo per l'Università e che al momento ho ripreso da autodidatta, potresti (e lo chiedo seriamente) spiegarmi perché non ti aggrada la soluzione e come l'avresti risolta tu? Mi sarebbe molto d'aiuto, come dicevo non ho avuto ancora modo di riprendere in mano tutta la materia.
Dusdan Inviato 25 Settembre 2008 Segnala Inviato 25 Settembre 2008 Premetto che ho fatto quello che volevo fare, più o meno così. char leggi[5]; cin>>leggi; const char *id=strlwr(leggi); const char *intest="Percorso_fino_alla_cartella_superiore"; char nome_f[9]; strcpy(nome_f, id); strcat(nome_f, ".txt"); char NameVar1[120]; strcpy(NameVar1, intest); strcat(NameVar1, id); strcat(NameVar1, "/file_da_caricare.estensione"); const char* SurfName1=NameVar1; vedo una mezza dozzina di bachi. Nessuno, vecchio mio: sai bene chi mi ha fatto lo pseudo-corso di Informatica il primo anno, mister Hmeljak. Dopo anni di stop, praticamente ho ricominciato da zero questa estate. e non hai fatto calcolatori? Ribadendo ancora che sono passati diversi anni da quando programmavo per l'Università e che al momento ho ripreso da autodidatta, potresti (e lo chiedo seriamente) spiegarmi perché non ti aggrada la soluzione e come l'avresti risolta tu?perche` i char pointer sono una fabbrica di bachi e sono impossibili da gestire. usa le string, che sono la peggiore implentazione esistente di una stringa, ma almeno non sono mortali come i char pointer.
Messaggio consigliato
Crea un account o accedi per commentare
Devi essere un utente registrato per poter lasciare un commento
Crea un account
Crea un nuovo account e registrati nella nostra comunità. È facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora