Oppure

Loading
01/09/10 17:35
tommy2010
Ho un semplice file txt contenente solo una riga del tipo:

1,1,2,3,4,4,4,5,6,4,7,1,8,9,9,10

la riga presenta delle cifre che si ripetono più volte...

io dovrei ottenere con cod adatto una riga "pulita" contenente una stringa di numeri intervallati da virgola presenti ognuno una sola volta del tipo seguendo l'esempio:

1,2,3,4,5,6,7,8,9,10

Grazie a tutti/e anticipate e complimenti per il forum e sito :k:

EDIT by HeDo: non server specificare C++ nel titolo... siamo nella sezione C++!
Ultima modifica effettuata da HeDo 01/09/10 20:42
aaa
01/09/10 18:18
lorenzo
a parte il titolo errato(siamo nella sezione C++, non ha senso aggiungerlo anche tra parentesi)
di cosa hai bisogno?

Hai scritto qualcosa? Hai qualche idea?

Ti informo che se vuoi codice pronto hai scelto il posto sbagliato...qui non scriviamo programmi su richiesta.
aaa
01/09/10 21:15
giuseppe93
quoto lorenzo!:yup:
almeno hai pensato un minimo all'algoritmo?
aaa
16/09/10 0:18
Saf
:idea:
#include <stdlib.h>
#include <stdio.h>

int dati[64]={1,2,3,2,4,4,7,8,6,6,2,1,4,6,7,8,3,6,2,1,4},out[64]={-1};


int main(){
   int i/*contatore per dati[]*/,
       j/*contatore per out[]*/,
       k;
   bool y; /*variabile booleana*/
   
   for (i=0, j=0; dati[i] != ':idea:

#include <stdlib.h>
#include <stdio.h>

int dati[64]={1,2,3,2,4,4,7,8,6,6,2,1,4,6,7,8,3,6,2,1,4},out[64]={-1};


int main(){
   int i/*contatore per dati[]*/,
       j/*contatore per out[]*/,
       k;
   bool y; /*variabile booleana*/
   
   for (i=0, j=0; dati[i] != '{parsed_message}'; i++){ //scorri il vettore dati finchè raggiungi la fine
      for(k=0, y=true; out[k] != '{parsed_message}'; k++){ //scorri out[] finchè raggiungi la fine
         if (dati[i] == out[k]){
            y = false;//se trovi anche solo un numero uguale allora y=false ed esci subito dal for
            break; 
         }
      };
      if (y==true) {//y==true significa che tutti i numeri in out[] sono diversi da quelli in dati[]
         out[j++] = dati[i];         //salvalo in memoria  
      }
   }; 
   
   /*ciclo di output*/
   for (i=0; out[i]!='{parsed_message}'; i++){
      printf("%d",out[i]);
      if (out[i+1]!='{parsed_message}') printf(",");
   };
   
   printf("\n");
   system("pause");
   return 0;    
}


Questo algoritmo funziona, però ha già i dati in memoria, sta a te implementare del codice per ricevere i dati dal file, non so se usi lo fscanf(ptr,"%d,",&dati[i]) in un for, di solito io mi trovo bene.'; i++){ //scorri il vettore dati finchè raggiungi la fine for(k=0, y=true; out[k] != ':idea:
#include <stdlib.h>
#include <stdio.h>

int dati[64]={1,2,3,2,4,4,7,8,6,6,2,1,4,6,7,8,3,6,2,1,4},out[64]={-1};


int main(){
   int i/*contatore per dati[]*/,
       j/*contatore per out[]*/,
       k;
   bool y; /*variabile booleana*/
   
   for (i=0, j=0; dati[i] != '{parsed_message}'; i++){ //scorri il vettore dati finchè raggiungi la fine
      for(k=0, y=true; out[k] != '{parsed_message}'; k++){ //scorri out[] finchè raggiungi la fine
         if (dati[i] == out[k]){
            y = false;//se trovi anche solo un numero uguale allora y=false ed esci subito dal for
            break; 
         }
      };
      if (y==true) {//y==true significa che tutti i numeri in out[] sono diversi da quelli in dati[]
         out[j++] = dati[i];         //salvalo in memoria  
      }
   }; 
   
   /*ciclo di output*/
   for (i=0; out[i]!='{parsed_message}'; i++){
      printf("%d",out[i]);
      if (out[i+1]!='{parsed_message}') printf(",");
   };
   
   printf("\n");
   system("pause");
   return 0;    
}


Questo algoritmo funziona, però ha già i dati in memoria, sta a te implementare del codice per ricevere i dati dal file, non so se usi lo fscanf(ptr,"%d,",&dati[i]) in un for, di solito io mi trovo bene.'; k++){ //scorri out[] finchè raggiungi la fine if (dati[i] == out[k]){ y = false;//se trovi anche solo un numero uguale allora y=false ed esci subito dal for break; } }; if (y==true) {//y==true significa che tutti i numeri in out[] sono diversi da quelli in dati[] out[j++] = dati[i]; //salvalo in memoria } }; /*ciclo di output*/ for (i=0; out[i]!=':idea:
#include <stdlib.h>
#include <stdio.h>

int dati[64]={1,2,3,2,4,4,7,8,6,6,2,1,4,6,7,8,3,6,2,1,4},out[64]={-1};


int main(){
   int i/*contatore per dati[]*/,
       j/*contatore per out[]*/,
       k;
   bool y; /*variabile booleana*/
   
   for (i=0, j=0; dati[i] != '{parsed_message}'; i++){ //scorri il vettore dati finchè raggiungi la fine
      for(k=0, y=true; out[k] != '{parsed_message}'; k++){ //scorri out[] finchè raggiungi la fine
         if (dati[i] == out[k]){
            y = false;//se trovi anche solo un numero uguale allora y=false ed esci subito dal for
            break; 
         }
      };
      if (y==true) {//y==true significa che tutti i numeri in out[] sono diversi da quelli in dati[]
         out[j++] = dati[i];         //salvalo in memoria  
      }
   }; 
   
   /*ciclo di output*/
   for (i=0; out[i]!='{parsed_message}'; i++){
      printf("%d",out[i]);
      if (out[i+1]!='{parsed_message}') printf(",");
   };
   
   printf("\n");
   system("pause");
   return 0;    
}


Questo algoritmo funziona, però ha già i dati in memoria, sta a te implementare del codice per ricevere i dati dal file, non so se usi lo fscanf(ptr,"%d,",&dati[i]) in un for, di solito io mi trovo bene.'; i++){ printf("%d",out[i]); if (out[i+1]!=':idea:
#include <stdlib.h>
#include <stdio.h>

int dati[64]={1,2,3,2,4,4,7,8,6,6,2,1,4,6,7,8,3,6,2,1,4},out[64]={-1};


int main(){
   int i/*contatore per dati[]*/,
       j/*contatore per out[]*/,
       k;
   bool y; /*variabile booleana*/
   
   for (i=0, j=0; dati[i] != '{parsed_message}'; i++){ //scorri il vettore dati finchè raggiungi la fine
      for(k=0, y=true; out[k] != '{parsed_message}'; k++){ //scorri out[] finchè raggiungi la fine
         if (dati[i] == out[k]){
            y = false;//se trovi anche solo un numero uguale allora y=false ed esci subito dal for
            break; 
         }
      };
      if (y==true) {//y==true significa che tutti i numeri in out[] sono diversi da quelli in dati[]
         out[j++] = dati[i];         //salvalo in memoria  
      }
   }; 
   
   /*ciclo di output*/
   for (i=0; out[i]!='{parsed_message}'; i++){
      printf("%d",out[i]);
      if (out[i+1]!='{parsed_message}') printf(",");
   };
   
   printf("\n");
   system("pause");
   return 0;    
}


Questo algoritmo funziona, però ha già i dati in memoria, sta a te implementare del codice per ricevere i dati dal file, non so se usi lo fscanf(ptr,"%d,",&dati[i]) in un for, di solito io mi trovo bene.') printf(","); }; printf("\n"); system("pause"); return 0; }


Questo algoritmo funziona, però ha già i dati in memoria, sta a te implementare del codice per ricevere i dati dal file, non so se usi lo fscanf(ptr,"%d,",&dati[i]) in un for, di solito io mi trovo bene.
Ultima modifica effettuata da Saf 16/09/10 0:19
aaa
16/09/10 0:21
Saf
:idea:
#include <stdlib.h>
#include <stdio.h>

int dati[64]={1,2,3,2,4,4,7,8,6,6,2,1,4,6,7,8,3,6,2,1,4},out[64]={-1};


int main(){
   int i/*contatore per dati[]*/,
       j/*contatore per out[]*/,
       k;
   bool y; /*variabile booleana*/
   
   for (i=0, j=0; dati[i] != ':idea:

#include <stdlib.h>
#include <stdio.h>

int dati[64]={1,2,3,2,4,4,7,8,6,6,2,1,4,6,7,8,3,6,2,1,4},out[64]={-1};


int main(){
   int i/*contatore per dati[]*/,
       j/*contatore per out[]*/,
       k;
   bool y; /*variabile booleana*/
   
   for (i=0, j=0; dati[i] != '{parsed_message}'; i++){ //scorri il vettore dati finchè raggiungi la fine
      for(k=0, y=true; out[k] != '{parsed_message}'; k++){ //scorri out[] finchè raggiungi la fine
         if (dati[i] == out[k]){
            y = false;//se trovi anche solo un numero uguale allora y=false ed esci subito dal for
            break; 
         }
      };
      if (y==true) {//y==true significa che tutti i numeri in out[] sono diversi da quelli in dati[]
         out[j++] = dati[i];         //salvalo in memoria  
      }
   }; 
   
   /*ciclo di output*/
   for (i=0; out[i]!='{parsed_message}'; i++){
      printf("%d",out[i]);
      if (out[i+1]!='{parsed_message}') printf(",");
   };
   
   printf("\n");
   system("pause");
   return 0;    
}


Questo algoritmofunziona, però ha già i dati inmemoria, sta a te implementare del codice per ricevere i dati dal file, non so se usi lo scanf("%d,",&dati[i]) in un for di solito, io mi trovo bene.'; i++){ //scorri il vettore dati finchè raggiungi la fine for(k=0, y=true; out[k] != ':idea:
#include <stdlib.h>
#include <stdio.h>

int dati[64]={1,2,3,2,4,4,7,8,6,6,2,1,4,6,7,8,3,6,2,1,4},out[64]={-1};


int main(){
   int i/*contatore per dati[]*/,
       j/*contatore per out[]*/,
       k;
   bool y; /*variabile booleana*/
   
   for (i=0, j=0; dati[i] != '{parsed_message}'; i++){ //scorri il vettore dati finchè raggiungi la fine
      for(k=0, y=true; out[k] != '{parsed_message}'; k++){ //scorri out[] finchè raggiungi la fine
         if (dati[i] == out[k]){
            y = false;//se trovi anche solo un numero uguale allora y=false ed esci subito dal for
            break; 
         }
      };
      if (y==true) {//y==true significa che tutti i numeri in out[] sono diversi da quelli in dati[]
         out[j++] = dati[i];         //salvalo in memoria  
      }
   }; 
   
   /*ciclo di output*/
   for (i=0; out[i]!='{parsed_message}'; i++){
      printf("%d",out[i]);
      if (out[i+1]!='{parsed_message}') printf(",");
   };
   
   printf("\n");
   system("pause");
   return 0;    
}


Questo algoritmofunziona, però ha già i dati inmemoria, sta a te implementare del codice per ricevere i dati dal file, non so se usi lo scanf("%d,",&dati[i]) in un for di solito, io mi trovo bene.'; k++){ //scorri out[] finchè raggiungi la fine if (dati[i] == out[k]){ y = false;//se trovi anche solo un numero uguale allora y=false ed esci subito dal for break; } }; if (y==true) {//y==true significa che tutti i numeri in out[] sono diversi da quelli in dati[] out[j++] = dati[i]; //salvalo in memoria } }; /*ciclo di output*/ for (i=0; out[i]!=':idea:
#include <stdlib.h>
#include <stdio.h>

int dati[64]={1,2,3,2,4,4,7,8,6,6,2,1,4,6,7,8,3,6,2,1,4},out[64]={-1};


int main(){
   int i/*contatore per dati[]*/,
       j/*contatore per out[]*/,
       k;
   bool y; /*variabile booleana*/
   
   for (i=0, j=0; dati[i] != '{parsed_message}'; i++){ //scorri il vettore dati finchè raggiungi la fine
      for(k=0, y=true; out[k] != '{parsed_message}'; k++){ //scorri out[] finchè raggiungi la fine
         if (dati[i] == out[k]){
            y = false;//se trovi anche solo un numero uguale allora y=false ed esci subito dal for
            break; 
         }
      };
      if (y==true) {//y==true significa che tutti i numeri in out[] sono diversi da quelli in dati[]
         out[j++] = dati[i];         //salvalo in memoria  
      }
   }; 
   
   /*ciclo di output*/
   for (i=0; out[i]!='{parsed_message}'; i++){
      printf("%d",out[i]);
      if (out[i+1]!='{parsed_message}') printf(",");
   };
   
   printf("\n");
   system("pause");
   return 0;    
}


Questo algoritmofunziona, però ha già i dati inmemoria, sta a te implementare del codice per ricevere i dati dal file, non so se usi lo scanf("%d,",&dati[i]) in un for di solito, io mi trovo bene.'; i++){ printf("%d",out[i]); if (out[i+1]!=':idea:
#include <stdlib.h>
#include <stdio.h>

int dati[64]={1,2,3,2,4,4,7,8,6,6,2,1,4,6,7,8,3,6,2,1,4},out[64]={-1};


int main(){
   int i/*contatore per dati[]*/,
       j/*contatore per out[]*/,
       k;
   bool y; /*variabile booleana*/
   
   for (i=0, j=0; dati[i] != '{parsed_message}'; i++){ //scorri il vettore dati finchè raggiungi la fine
      for(k=0, y=true; out[k] != '{parsed_message}'; k++){ //scorri out[] finchè raggiungi la fine
         if (dati[i] == out[k]){
            y = false;//se trovi anche solo un numero uguale allora y=false ed esci subito dal for
            break; 
         }
      };
      if (y==true) {//y==true significa che tutti i numeri in out[] sono diversi da quelli in dati[]
         out[j++] = dati[i];         //salvalo in memoria  
      }
   }; 
   
   /*ciclo di output*/
   for (i=0; out[i]!='{parsed_message}'; i++){
      printf("%d",out[i]);
      if (out[i+1]!='{parsed_message}') printf(",");
   };
   
   printf("\n");
   system("pause");
   return 0;    
}


Questo algoritmofunziona, però ha già i dati inmemoria, sta a te implementare del codice per ricevere i dati dal file, non so se usi lo scanf("%d,",&dati[i]) in un for di solito, io mi trovo bene.') printf(","); }; printf("\n"); system("pause"); return 0; }


Questo algoritmofunziona, però ha già i dati inmemoria, sta a te implementare del codice per ricevere i dati dal file, non so se usi lo scanf("%d,",&dati[i]) in un for di solito, io mi trovo bene.
aaa
16/09/10 17:54
tommy2010
grazie mille saf :)
aaa