Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing propone sul mercato non uno ma ben due auricolari nuovi: Ear di terza generazione e Ear (a) ossia un nuovo modello a basso costo pronto a ritagliarsi una fetta di mercato. Entrambi rimangono fedeli al marchio per il design ancora trasparente ma fanno un balzo in avanti notevole per qualità e soppressione del rumore.  
Sony FE 16-25mm F2.8 G: meno zoom, più luce
Sony FE 16-25mm F2.8 G: meno zoom, più luce
Il nuovo Sony FE 16-25mm F2.8G si aggiunge all'analogo 24-50mm per offrire una coppia di zoom compatti ma di apertura F2.8 costante, ideali per corpi macchina altrettanto compatti (vedi A7c ) e fotografia di viaggio.
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione
Motorola è decisa sulla sua strada: questo nuovo edge 50 Pro non guarda a specifiche stellari ma considera di più l’aspetto estetico. E si propone elegantemente con linee sinuose e un sistema operativo veloce. Peccato per un prezzo un po' fuori mercato.
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 09-06-2017, 21:58   #1
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
[C] Come estrarre dati da file.txt con stringhe separate dal carattere + ("più") ?

Sono disperato! Sto svolgendo questo esercizio in C e devo prelevare i dati, come nell'esempio che vedete, ma vi è quel + in mezzo ai piedi. Avevo pensato ad una fscanf o carattere per carattere, ma non sono come fare. Qualcuno potrebbe farmi un esempio basato sull'esercizio che vi ho postato? Le funzioni le dovrei saper svolgere, il mio problema è prelevare correttamente i dati e salvarli nella struttura dati (LISTA).

Ecco l'esercizio: https://www.dropbox.com/s/8gjtdxm6fb...cizio.jpg?dl=0

P.S. Sono veramente disperato e ringrazio di cuore chiunque mi possa dare una mano, grazie!
Disperato7 è offline  
Old 10-06-2017, 08:06   #2
gianmpu
Senior Member
 
Iscritto dal: Oct 2010
Messaggi: 1609
Ciao e benvenuto nel forum di hwupgrade.
Come ti spiegheranno anche altri, da regolamento è vietato risolvere completamente gli esercizi dati ad altri.
Al massimo si può correggere quello che hai già scritto tu.
Comunque, se il tuo problema è la lettura dal file skippando il +, la prima cosa che mi viene in mente è un semplice ciclo del tipo
Codice:
do
{
   leggo un carattere dal file
   IF carattere <> + lo aggiungo ad una stringa
}
while carattere <> +
__________________
Trattative nel mercatino: IronHead - fybpeppe - xcavax
Utenti assolutamente DA EVITARE: devilred
"Chi c**a sott' 'a neve, pure si ffa 'a bbuca e poi 'a copre, quanno 'a neve se scioje, 'a mm***a vie' sempre fori" T. Milian
gianmpu è offline  
Old 10-06-2017, 20:44   #3
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
Studiando online ho trovato la funzione strtok che mi spezzetta le stringhe dai + (più).
Adesso devo acquisire dal file "liste.txt" i dati e faccio così
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 30
#define MAX_LINE 512

struct candidato {
       char cognome [MAX];
       char nome[MAX];
       char partito[MAX];
       int voti;   
       struct candidato *pun;       };
                    
                         

int main(int argc, char *argv[])
{
    int scelta,i,j,n,righe,uscita; char buff[900]; int elettori; char k;
    struct candidato*candidati; struct fittizia*buf; int*p;
    FILE *fp;
    fp=fopen("liste.txt", "r");if(fp==NULL){            //uscita con exit() segnalando al s.o. con exit(1) che è avvenuto un errore
    printf("\n\nsi e' verificato un errore relativo al file----errore---clicca un pulsante per uscire");
    scanf("%d", &uscita);
    exit(1);}
    
       
    
    
    

    char buffer[MAX_LINE];
    for (n = 1; fgets(buffer, MAX_LINE, fp); n++) {
        printf("Linea %d => %s", n, buffer);

        char *str = strtok(buffer, "+");
        do {
            printf ("%s\n", str);
        } while (str = strtok(NULL, "+"));
    }
Come faccio ad inserire il tutto nella lista struct candidato? Grazie a chiunque mi aiuti
Disperato7 è offline  
Old 12-06-2017, 09:04   #4
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3305
A questo punto il problema non è più come splittare una stringa per il carattere '+', ma studiare come funziona lo scope delle variabili, l'allocazione di memoria del C e la gestione delle liste.
Una volta studiati questi 3 elementi è banale risolvere l'esercizio.
tomminno è offline  
Old 13-06-2017, 12:14   #5
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
Quote:
Originariamente inviato da tomminno Guarda i messaggi
A questo punto il problema non è più come splittare una stringa per il carattere '+', ma studiare come funziona lo scope delle variabili, l'allocazione di memoria del C e la gestione delle liste.
Una volta studiati questi 3 elementi è banale risolvere l'esercizio.
Ho studiato quanto tu dici, ma ho difficoltà ad applicarlo. Visto che dici che è così banale potresti farmi un esempio su questo esercizio? Grazie.
Disperato7 è offline  
Old 13-06-2017, 14:33   #6
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3305
Quote:
Originariamente inviato da Disperato7 Guarda i messaggi
Ho studiato quanto tu dici, ma ho difficoltà ad applicarlo. Visto che dici che è così banale potresti farmi un esempio su questo esercizio? Grazie.
Quindi visto che sai come si alloca la memoria in C devi:
1)allocare il primo elemento della lista.
2)copiare le stringhe lette in input sulle relative variabili della struct
3)Allocare il secondo elemento della lista
4)copiare le stringhe ...
...

Quindi rispondi a queste domande:
1)Come alloco il primo elemento della lista?
2)come faccio la copia di una stringa in C?

E' tutto quello che ti serve per risolvere l'esercizio, se veramente l'hai studiato è semplice.
tomminno è offline  
Old 13-06-2017, 17:47   #7
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
Guarda ti invio il codice per l'inserimento ordinato di un intero in una lista
Codice:
struct elemento *inserimento(struct elemento *p)
{
struct elemento *p0, *p1;
int posizione;
/* Creazione elemento */
p0 = (struct elemento *)malloc(sizeof(struct elemento));
printf("\nInserire l'informazione (un numero intero): ");
scanf("%d", &p0->inf);
if(p==NULL) { /* se la lista è vuota, l'elemento */
p = p0; /* diventa il primo e unico della lista */
p->pun = NULL;
}
else {
if(p->inf > p0->inf) { /* se il valore dell'elemento è */
p0->pun = p; /* inferiore al primo l'elemento */
p = p0; /* diventa il primo della lista */
}
else { /* ricerca della posizione di inserimento */
p1 = p;
posizione = 0;
while(p1->pun!=NULL && posizione!=1) {
if(p1->pun->inf < p0->inf)
p1 = p1->pun; /* scorre in avanti p1 */
else
posizione = 1; /* interrompe lo scorrimento */
}
p0->pun = p1->pun; /* connessione all'elemento successivo */
p1->pun = p0; /* connessione dall'elemento precedente */
}
}
return(p); /* ritorno del puntatore all'inizio della lista */
}
Ed infine ti dico che copiare una stringa lo si fa con strcpy che si trova in string.h
Ma non so andare avanti perchè se hai visto l'esercizio, poi mi perdo quando devo scansionare tutta la lista alla ricerca dei voti o dei partiti da conteggiare per le funzioni da creare per l'esercizio. Come devo fare?
Disperato7 è offline  
Old 13-06-2017, 21:01   #8
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3305
Risolvi un problema alla volta, prima costruisci la lista e solo poi vedremo il problema della ricerca.

Quel codice di inserimento in lista non è sufficientemente generico da essere applicato senza modifiche al tuo caso.

Scrivi del codice attinente al tuo esercizio invece di copiare pezzi di codice a caso
tomminno è offline  
Old 15-06-2017, 15:17   #9
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
Ma una curiosità? Ma voi vi divertite a perculare chi vi chiede un cavolo di aiuto? Perchè ho notato che nei forum, preferiscono tirarla per le lunghe o insultare come hai fatto tu con il "Codice a caso" o con il classico tono "Io sono Bill Gates, quindi ti tratterò come una scimmia".
Un piffero di aiuto cercavo ed invece sempre che il brodo si allunga e mi devo sorbire pure gli insulti.
Disperato7 è offline  
Old 15-06-2017, 16:13   #10
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3305
Quote:
Originariamente inviato da Disperato7 Guarda i messaggi
Ma una curiosità? Ma voi vi divertite a perculare chi vi chiede un cavolo di aiuto? Perchè ho notato che nei forum, preferiscono tirarla per le lunghe o insultare come hai fatto tu con il "Codice a caso" o con il classico tono "Io sono Bill Gates, quindi ti tratterò come una scimmia".
Un piffero di aiuto cercavo ed invece sempre che il brodo si allunga e mi devo sorbire pure gli insulti.
Non è perculare, ti stavo guidando nella risoluzione dell'esercizio. Ti ho illustrato l'algoritmo da applicare per risolverlo, dato che hai dichiarato tu stesso di aver studiato tutti gli argomenti necessari a risolverlo.
Invece rispondi con un pezzo di codice copiato da qualche altro esercizio che non è applicabile al caso in questione. Potevi almeno fare uno sforzo e modificarlo in modo che facesse un inserimento in una lista di "candidato" invece che di "elemento"

In realtà pare proprio che tu non abbia studiato granchè e qui gli esercizi non si risolvono come da regolamento.
tomminno è offline  
Old 15-06-2017, 19:47   #11
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
no, tu cercavi qualcuno che ti risolvesse l'esercizio e ti desse il codice con cui fare copia e incolla. e' gia' tanto che qualcuno ti abbia risposto dato che questo non e' un help desk, non e' CEPU, non e' grandi scuole, non e' qualcuno che ti faccia ripetizioni a gratis.

se sei cosi' disperato apri il libro e studia.
Vaffancetera ho studiato una dozzina di manuali, ma affrontano tutto con array o cretinate simili, fenomeno quindi prima di parlare aziona il cervello!
Disperato7 è offline  
Old 15-06-2017, 19:49   #12
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Non è perculare, ti stavo guidando nella risoluzione dell'esercizio. Ti ho illustrato l'algoritmo da applicare per risolverlo, dato che hai dichiarato tu stesso di aver studiato tutti gli argomenti necessari a risolverlo.
Invece rispondi con un pezzo di codice copiato da qualche altro esercizio che non è applicabile al caso in questione. Potevi almeno fare uno sforzo e modificarlo in modo che facesse un inserimento in una lista di "candidato" invece che di "elemento"

In realtà pare proprio che tu non abbia studiato granchè e qui gli esercizi non si risolvono come da regolamento.
Algoritmo?
A voce pure io lo so dire cosa devo fare, e l'avrei saputo dire anche senza studiare il C o altri linguaggi, ma usando solo il cervello.
Mi avete stufato, fancetera, vi credete fenomeni ma non lo sapete fare neanche voi.
Disperato7 è offline  
Old 15-06-2017, 19:51   #13
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
no, tu cercavi qualcuno che ti risolvesse l'esercizio e ti desse il codice con cui fare copia e incolla. e' gia' tanto che qualcuno ti abbia risposto dato che questo non e' un help desk, non e' CEPU, non e' grandi scuole, non e' qualcuno che ti faccia ripetizioni a gratis.

se sei cosi' disperato apri il libro e studia.
Sei talmente ignorante che scrivi "a gratis", si scrive solo "gratis". Studia tu piuttosto, CAPRA !!!
Disperato7 è offline  
Old 16-06-2017, 08:48   #14
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3305
Quote:
Originariamente inviato da Disperato7 Guarda i messaggi
Algoritmo?
A voce pure io lo so dire cosa devo fare, e l'avrei saputo dire anche senza studiare il C o altri linguaggi, ma usando solo il cervello.
Mi avete stufato, fancetera, vi credete fenomeni ma non lo sapete fare neanche voi.
Allora se l'algoritmo lo sai, sai come si inserisce un elemento in lista, sai come si copia una stringa in C, come mai non sai fare quello che dici di saper fare???

Facciamo così prima posta la tua soluzione corretta dell'esercizio che poi io ti posto la mia, vediamo chi non lo sa fare
tomminno è offline  
Old 17-06-2017, 14:25   #15
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
Quote:
Originariamente inviato da Bellaz89 Guarda i messaggi
LOL. . Quindi fammi capire, la gente ti aiuta e perde il suo tempo per te gratuitamente e tu la mandi a quel paese? Proprio una strategia perfetta per farsi aiutare in futuro...
Ti auguro 3 anni di disgrazie!
Disperato7 è offline  
Old 17-06-2017, 14:26   #16
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Allora se l'algoritmo lo sai, sai come si inserisce un elemento in lista, sai come si copia una stringa in C, come mai non sai fare quello che dici di saper fare???

Facciamo così prima posta la tua soluzione corretta dell'esercizio che poi io ti posto la mia, vediamo chi non lo sa fare
Ti auguro 3 anni di disgrazie!
Disperato7 è offline  
Old 17-06-2017, 14:28   #17
Disperato7
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 11
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
bravo, si vede che sei portato per le lettere ma non per l'informatica allora.

PS per approfondire, con i tuoi amici dell'accademia della crusca: http://www.accademiadellacrusca.it/i...rittura-gratis
Ti auguro 3 anni di disgrazie!
Disperato7 è offline  
Old 17-06-2017, 14:52   #18
FreeMan
Senior Member
 
L'Avatar di FreeMan
 
Iscritto dal: Jul 1999
Città: Black Mesa
Messaggi: 72348
Quote:
Originariamente inviato da Disperato7 Guarda i messaggi
Ma una curiosità? Ma voi vi divertite a perculare chi vi chiede un cavolo di aiuto? Perchè ho notato che nei forum, preferiscono tirarla per le lunghe o insultare come hai fatto tu con il "Codice a caso" o con il classico tono "Io sono Bill Gates, quindi ti tratterò come una scimmia".
Un piffero di aiuto cercavo ed invece sempre che il brodo si allunga e mi devo sorbire pure gli insulti.
Quote:
Originariamente inviato da Disperato7 Guarda i messaggi
Vaffancetera ho studiato una dozzina di manuali, ma affrontano tutto con array o cretinate simili, fenomeno quindi prima di parlare aziona il cervello!
Quote:
Originariamente inviato da Disperato7 Guarda i messaggi
Algoritmo?
A voce pure io lo so dire cosa devo fare, e l'avrei saputo dire anche senza studiare il C o altri linguaggi, ma usando solo il cervello.
Mi avete stufato, fancetera, vi credete fenomeni ma non lo sapete fare neanche voi.
Quote:
Originariamente inviato da Disperato7 Guarda i messaggi
Sei talmente ignorante che scrivi "a gratis", si scrive solo "gratis". Studia tu piuttosto, CAPRA !!!
Quote:
Originariamente inviato da Disperato7 Guarda i messaggi
Ti auguro 3 anni di disgrazie!
Quote:
Originariamente inviato da Disperato7 Guarda i messaggi
Ti auguro 3 anni di disgrazie!
Quote:
Originariamente inviato da Disperato7 Guarda i messaggi
Ti auguro 3 anni di disgrazie!
Hai anche lacune di educazione e rispetto oltre che di programmazione ed uso di un forum nel rispetto delle sue regole

utente ovviamente bannato

CLOSED!!

>bYeZ<
__________________
REGOLAMENTO & update1/update2 | IO C'ERO | Realme X3 SZ 12/256 - History | GTi is BACK

"Non sorridete.......gli spari sopra.....sono per VOI!"
FreeMan è offline  
 Discussione Chiusa


Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione Nothing Ear e Ear (a): gli auricolari per tutti ...
Sony FE 16-25mm F2.8 G: meno zoom, più luce Sony FE 16-25mm F2.8 G: meno zoom, più lu...
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione Motorola edge 50 Pro: design e display al top, m...
Ecovacs Goat G1-800, mettiamo alla prova il robot tagliaerba facile ed efficace Ecovacs Goat G1-800, mettiamo alla prova il robo...
ASUS ProArt 1, un PC completo ad altissime prestazioni per creator e non solo ASUS ProArt 1, un PC completo ad altissime prest...
The Witcher 3: disponibile su Steam il R...
Xiaomi 15: trapelano importanti specific...
Fallout 5? Meglio aspettare la seconda s...
Motorola Edge 50 Pro è ora disponibile s...
La tecnologia digitale sta trasformando ...
ASUSTOR presenta ADM 4.3 con nuove funzi...
S8 MaxV Ultra e Qrevo Pro: i nuovi aspir...
Goldene: creati, per la prima volta, fog...
La cinese Dongfeng produrrà i suo...
NVIDIA SFF Enthusiast GPU: nuovo program...
Alfa Romeo, il CEO avverte i politici: a...
Nothing Ear e Ear (a): l'evoluzione degl...
HR, customer experience, procurement: ec...
Utenti Discord, attenzione! Spy.Pet &egr...
Ottimi prezzi per i controller DualSense...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www1v