Vai al contenuto

Messaggio consigliato

Inviata

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! :-D), ma in C++ proprio non ricordo.

Correggetemi questo, in parole povere, dicendomi che cavolo andava al posto dell'asterisco. :mrgreen:

Dannata memoria...

#include <iostream.h>

void main ()

{

cout<<"Ciao DL!";

*

}

Superato questo scoglio, è tutto in discesa.


  • Risposte 44
  • Creato
  • Ultima risposta

Principali partecipanti

Inviato

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! :-D), 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 ;-)

Inviato

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.

Inviato

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;

Inviato

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())

}

Inviato

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++ :bye:
Inviato

Mo l'ho preso dalle dispense di C++ del Hmeljak...:confused: (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++ :-p

Inviato

- 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++ :-p

Il fine giustifica i mezzi...:cool: (anche se fa inorridire gli esperti di programmazione...)

Inviato

Ragazzi, a questo punto mi preoccupo parecchio, forse il compilatore è impazzito? Voglio dire, Borland Builder non mi fa funzionare nemmeno Hello World... :confused:

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 ;-)

  • 1 mese dopo...
Inviato

Uppo (sperando che Arghot mi faccia di nuovo felice :mrgreen:) 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...

Inviato

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.

  • 2 mesi dopo...
Inviato

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...

Inviato

santa madre, ma chi ti ha insegnato a programmare? :banghead:

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.

Inviato

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? :banghead:

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.

Inviato

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.

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 account

Accedi

Hai già un account? Accedi qui.
 

Accedi ora
×
×
  • Crea nuovo...