Newsgroup: it.comp.lang.c++
Titolo: domandina...

So già che la domanda è un po' stupida ma... come faccio a non far
muovere quel bastardo di un * (quello dopo il nome per intenderci) a me
va a capo.
Quello che vorrei ottenere:
***_Inserisci_Nome_***
*     Nome: Ale      *
*                    *
Codice sbagliato :P
cout<<"***_Inserisci Nome_***"<<"\n";
cout<<"*  Nome:";
cin>>n;
cout<<"\b"<<"   *";
cout<<"\n";
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 cout<<"\b"<<"   *"<<endl;
                                     ^^^
1) Se usi il C++ usa *SOLO* il C++ (non mi ricordo a cosa serve il \b, cmq
bisogna "calibrare" gli spazzi)
2) Che subject č domandina??????
Ciao
--
Timothy Redaelli

??? in che senso usa solo il c++??? E io che sto usando? 
Cmq sto usando Visual c++ non credo cambi molto... e il "\b" dovrebbe
essere c++
e visto che non lo sai serve per fare Backspace.
Io chiedevo solo come arrivare a fare quella cosa. 
Insomma va be' che basta fare l'inserimento e il programma funziona lo
stesso
ma se lo faccio un po' + carino graficamente non mi sembra una brutta
cosa.
Cmq non bisogna "calibrare gli spazi" perchè appena fai il "cin"
quell'asterisco
te lo mette a capo. 
Ok che la domanda non è il massimo ma almeno pensarci un attimo prima di
rispondere no?!?
E poi che problema ha il mio oggetto? Mi spieghi cosa scrivevo come
descrizione?
Come faccio a non far andare a capo un'asterisco??? 


 e visto che non lo sai serve per fare Backspace.
Attento ad usare "\b" con windows, se per caso dovesse scapparti qualche
cosa tipo la mia signature ... addio ....
Ciao
Gaetano
--
#exclude <windows>
printf("\t\t\b\b\b\b\b\b");.
printf("\t\t\b\b\b\b\b\b");
Server - 
http://www.Mailgate.ORG

 Attento ad usare "\b" con windows, se per caso dovesse scapparti qualche
                                          ^^^^^^
Solo NT/2K/XP:
Non provate:
#include <stdio.h>
main()
{
    while(1)
        printf("\t\b\b");
}
Ciao
--
Timothy Redaelli

la domanda sorge spontanea...
io faccio una domanda perchè sto facendo uno stpidissimo programmino in
c++
Visto che sto iniziando non che possa fare altro...
Cmq... ho sto problemino.. mi dico.. aspetta che vado nel NG che magari
qualcuno
mi sa risolvere il problema. invece trovo 2 persone che non hanno niente
di meglio da fare che dirmi che se scrivo le loro righette di codice mi
trovo nei
casini.
Senza offesa ma non me ne frega molto.
Io volevo solo una soluzione stupida a un problema stupido
e non volevo certo vedere voi.. grandi sapiente di c++ fare gli
sboroni..
 o se volete i sapientoni...  o.... quel che volete...


 Io volevo solo una soluzione stupida a un problema stupido
mmm... ci ho pensato un po', e mi è venuta in mente questa
soluzione... che non funziona :-)))
#include <iostream>
#include <string>
using std::cout;
using std::cin;
using std::endl;
int main()
{
    std::string Stringa;
    char c;
    cout << "***_Inserisci Nome_***" << endl;
    cout << "*  Nome:" ;
    cin.tie(0); // scollega cin da cout
    cin >> Stringa;
    cout << Stringa << "   *" <<endl;
    cin.tie(&cout);
}
insomma, l'idea era di scollegare cin da cout e stampare
successivamente quanto digitato dall'utente, seguito dall' *
Il fatto è che non mi pare che l'istruzione cin.tie(0) abbia effetto.
Ho provato a compilare sia con il borland 5.5.1 che con
il dev-c++4
Qualcuno mi illumina? Sbaglio io o il compilatore?
--
Gerolamo

grazie cmq per il tuo aiuto


 #exclude <windows>
  ^^^^^^^^^^^^^^^^^^
Per questa dovresti pagarmi il copyright ;)


Ma in un NG non si dovrebbe rispondere semplicemente alle domande 
invece che prendere per il culo?
Non riesco a capire...


La risposta e' che non si puo' fare senza utilizzare servizi specifici
del sistema operativo: devi fare in modo di leggere i caratteri quando
vengono inseriti, senza aspettare il <return>, e quindi scrivere gli
spazi e l'asterisco.
Su alcuni sistemi puoi anche controllare l'echo, ovvero il meccanismo
che visualizza i caratteri immediatamente, e scegliere quali
visualizzare. Per sapere come fare rivolgiti ad un newsgroup relativo
all'ambiente che usi.
Ciao,
Nicola

 Non riesco a capire...
Innanzitutto, i newsgroup sono fatti per condurre delle discussioni, non
sono delle hot-line con gli esperti.
Non ha molto senso aversela a male se la propria domanda resta senza
risposta e se al contempo il prorio messaggio ha dato origine a una
discussione a cui si è interessati. Sono cose che succedono. Spesso.
Nessuno ti ha preso per il culo. La tua "domandina" ha avuto una risposta
chiara da Nicola Musatti, che ti ha spiegato che il problema non può essere
risolto senza ricorrere a meccanismi specifici della piattaforma.
Max

 discussione a cui si è interessati.
Ovviamente qui sopra manca un "non".
Max

 Per questa dovresti pagarmi il copyright ;)
nella header conio.h dai un occhiata alla funzione gotoxy(), wherex()
e wherey()
scrivi lo schema di asterischi, posizionati con gotoxy nella posizione
giusta, quindi esegui il cin

1° NON VOLEVO INVIARE UNA DISCUSSIONE... MI BASTA UNA RISPOSTA.
MI BASTAVA SAPERE .. SEI ot... e non se ne parlava +.
2° se noti.. il msg in cui chiedo.. perchè mi si deve prendere per il
culo..
msg a cui tu hai risposto è stato scritto 1 ora prima della risposta che
ho ricevuto
da Nicola. 
Ringrazio Nicola per la risposta e consiglio a tutti gli altri di
imparare
da lui a rispondere. 
invece che scrivere cazzate al massimo scrivetemi che sono OT. 
Grazie per l'aiuto a chi ha voluto aiutarmi e scusate per la lunga 
e inutile discussione che ne è nata.


 Il fatto è che non mi pare che l'istruzione cin.tie(0) abbia effetto.
il metodo tie non fa quello che pensi: se due stream sono collegati (ad 
esempio std::cout e std::cin) lo standard assicura che prima di 
effettuare una lettura dallo stream di input viene "flushato" quello di 
output e viceversa.
Scollegare cin e cout *non* implica disattivare l'echo su schermo dei 
caratteri digitati da tastiera.
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.73, higher than 99% of all previous test takers.
C Language: 3.79, higher than 92% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 caratteri digitati da tastiera.
Perfetto. Adesso ho capito. Grazie!
Mi scuso con "Yes Noo" per la risposta errata, allora...
--
Gerolamo

risolto senza ricorrere a meccanismi specifici della piattaforma.
Secondo me, una soluzione potrebbe essere quella di cancellare lo schermo
e riscrivere il tutto, comprensivo del dato inserito.
L'unica cosa che esula dallo standard è, appunto, quest'ultima operazione,
per la quale il C++ non prevede istruzioni *standard*.
Quindi, ti troveresti a dover fare una chiamata
system("comando-che-cancella-lo-schermo");
P.
-- 
_____
http://theunixplace.com/~entropia/index.html_____
 
  Mutationem motus proportionalem esse vi impressae 
et fieri secundum lineam rectam qua vis illa imprimitur
	I. N.

 per la quale il C++ non prevede istruzioni *standard*.
Infatti a suo tempo questo si risolveva stampando un numero sufficiente
di "a capo" da far sparire le scritte precedenti dallo schermo.
Ciao,
Nicola


E la libreria conio.h??? Il comando clrscr()?????
Ciao
--
Timothy Redaelli

 E la libreria conio.h??? Il comando clrscr()?????
Per l'appunto non sono standard.
Ciao,
Nicola

 Per l'appunto non sono standard.
Allora neanche system("clrscr") è standard.....
Ciao
--
Timothy Redaelli

 ha scritto nel messaggio
news:a2p39u$134616$1...@ID-87006.news.dfncis.de...

                                       ^^^^^
ops, system("cls")

 ops, system("cls")
Come ha gia' spiegato altrove Antonio Cuni, system, o meglio std::system
e' una funzione che la libreria standard del C++ eredita da quella del
C. Poiche' prende come argomento una stringa quello che le passi esula
dal linguaggio C++ in quanto tale (per esempio non e' il compilatore a
controllare che la stringa sia corretta).
Certamente il tuo esempio funziona solo per quelle piattaforme che sono
provviste del comando "cls".
Ciao,
Nicola

Allora neanche system("clrscr") è standard.....
infatti
-- 
Lawrence "Rhymes" Oluyede (
rhy...@myself.com
)
"Per cambiare, per diventare un'altra
cosa dobbiamo prima sapere cosa siamo"
(Bruce Lee)

Allora neanche system("clrscr") è standard.....
infatti e cmq che è clrscr? in che sistema operativo si usa?
 :))
