View Full Version : POSSIBILE CHE NESSUNO MI SA RISPONEDERE?EPPURE SONO CAVOLATE
sto iniziando a conoscere il C++
esempio questo:
#include <iostream.h>
void main ()
{
int a,n;
cin>>n;
while(n--)
cout<<'*';
cin>>a;
}
se n è minore di zero va in loop e mi torna ma se n è meggiore di zero perche' non va in loop?
eppure se inserisco 5 lo dovrebbe decrementare fino a meno infinito giusto? perche' si ferma a zero?
Ho iniziato anch'io da poco, ma se non sbaglio in C/C++ 0 (zero) corrisponde a "falso" e il ciclo while(int) è "infinito" solo se "int" è sempre "true", cioè diverso da 0.
Pertanto quando diventa while(0) si ferma.
Ciao.
cazzo hai proprio ragione il ciclo while continua finche' la condizione è verificata e quando arriva a zero che è uguale a falso stacca!a volte mi perdo in cazzate!grazie mille ;)
chiede in ingresso alcuni spazi seguiti da una lettera e dice quanti spazi hai inserito pero' dice sempre zero spazi perche?
dve ho sbagliato?
#include <iostream.h>
void main ()
{
int a,c;
char b,d;
c=0;
cout << "Inserisci quanti spazi vuoi seguiti da un carattere!" <<'\n';
cin >> d;
cin.get(b);
while (b==' ')
{c++;cin.get(b);}
cout << "Hai inserito " <<c<<" spazi"<<'\n';
cin >> a;
}
possibile che nessuno mi sappia dire dove sbaglio in questa cazzatina di programma?
non conosco gli stream in c (mannaggia mia!!!) però potrebbe essere perché d l'hai dichiarato come carattere e non come array di caratteri....
Originally posted by "leomeya"
sto iniziando a conoscere il C++
cin>>n;
Cmq il cin legge stringhe...
Dovresti usare
cin.get(n);
Spero sia così, altrimenti
n=getch();
Il problema è che è un pò che non programmo
Stai attento, se scrivi da tastiera il numero 5 non prende 5 ma il codice ASCII del 5, fa un cast implicito da char a int ;)
Ciao
Xavio
se n è minore di zero va in loop e mi torna ma se n è meggiore di zero perche' non va in loop?
Se n è maggiore di zero dovrebbe andare in loop fino a che non diventa zero ma stai attento ad usare un cin normale per leggere gli interi (leggi il post prima...)
eppure se inserisco 5 lo dovrebbe decrementare fino a meno infinito giusto? perche' si ferma a zero?
Leggi il post precedente...
Ciao
Xavio
Originally posted by "leomeya"
possibile che nessuno mi sappia dire dove sbaglio in questa cazzatina di programma?
E' tutt'altro che una cazzatina... Con gli stream quelle cose si fanno male... Infatti gli spazi in testa all'inzio della riga vengono ignorati...
Prova a scrivere come input diversi spazi seguiti da un carattere, diversi spazi e un'altro carattere e vedrai che ti conta quelli fra i due caratteri...
grazie mille provo seguendo i vostri consigli vi faccio risapere
getch non è una funzione standard ;) Quindi se hai un compilatore GCC non la puoi usare...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.