PDA

Visualizza la versione completa : [c]come posso interrompere il riempimento di un array appena do invio?


ascatem2
17-01-2005, 19:00
cioè.. io ho un array... di N interi.. gli faccio inserire tot numeri e appena premo invio lui smette di chiedermi l'inserimento dei numeri...

vi copio la mia funzione.. e poi spiego cosa vorrei che nn ci fosse.



/* O1 bin[i] numero binario da convertire in decimale
O2 n lunghezza logica di bin[i] */
void leggiBin(int bin[],int *n){
int i;
char c;
system("cls");
printf("Inserire la lunghezza del numero binario: ");
scanf("%d",n);
printf("\nInserire il numero binario da convertire: ");
for(i=0;i<*n;i++)
scanf("%1d",&bin[i]);
}/*leggiBin*/


pratticamente.. vorrei fare in modo che lui legga il numero binario.. ed arrivato a \n(invio) si fermi.. in modo da non dover chiedere all' inizio l'inserimento della lunghezza logica.


grazie!!!

perzem
17-01-2005, 19:05
usi una stringa che poi converti in int

ascatem2
17-01-2005, 19:09
asp.. mi sono scordato uan roba... allora io conosco le seguenti cose:

tipi interi, float, double, charù

if else iterazione
for ciclo a contatore
while ciclo a condizione iniziale
do-while ciclo a condizione finale
switch

array a 1 e + dimensioni

funzioni con passaggio per copia e valore...

e poi mi pare basta... quindi niente stringhe ecc... perchè poi il programma lo devo presentare.

perzem
17-01-2005, 19:12
usa un ciclo do while dove a condizione finale metti diverso da invio

ascatem2
17-01-2005, 19:41
do{
scanf("%1d",&bin[i++]);
}while(bin[i-1]!='\n');

io ho fatto così.. ma nn va. :(

perchè l'array bin è di interi.. forse...

perzem
17-01-2005, 20:10
prova ad usare


do{
}while(cin.getline()!='\n')


comunque per String intendevo char.
Puoi leggere un char poi con un ciclo for parti dalla prima all'ultima pos della stringa-1 e copi nell'array

perzem
17-01-2005, 20:17
guarda questo link sulle stringhe

http://www.dis.uniroma1.it/~degiacom/didattica/informatica_grafica/00-11-10/stringhe.c

ascatem2
17-01-2005, 21:22
Originariamente inviato da perzem
guarda questo link sulle stringhe

http://www.dis.uniroma1.it/~degiacom/didattica/informatica_grafica/00-11-10/stringhe.c

anche se so le stringhe ciò nn toglie che nn posso metterle nell 'esercizio :D

ascatem2
18-01-2005, 18:27
proprio niente? peccato :(

LeleFT
18-01-2005, 18:51
Prova a vedere questo... a me funziona perfettamente:


#include <stdio.h>

int main() {
char numeri[80]; /* Dimensione massima consentita */
char carattere;
int i = 0;
int j = 0;

while ((carattere = getch()) != 13) {
putchar(carattere);
numeri[i++] = carattere;
}

printf("Numero caratteri inseriti: %d\n", i);
printf("Questi sono i caratteri:\n");
for (j=0; j<i; j++) putchar(numeri[j]);

return 0;
}
Attenzione che se l'utente inserisce più di 80 caratteri rischi un Segmentation Fault.


Ciao. :ciauz:

Loading