Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Apple MacBook Air M3: chi deve davvero comprarlo? La recensione
Apple MacBook Air M3: chi deve davvero comprarlo? La recensione
A distanza di circa 8 mesi arriva l’importante aggiornamento dei MacBook Air: nessun cambiamento estetico, ma una revisione hardware interna con l’upgrade al processore M3. Le prestazioni migliorano rispetto alle generazioni precedenti, e questo fa sorgere una domanda spontanea: a chi è rivolto oggi questo laptop? Cerchiamo di capirlo nella nostra recensione 
ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ultrawide si fondono
ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ultrawide si fondono
Da ASUS un monitor particolare ma molto completo: principalmente indirizzato al videogiocatore, può essere sfruttato con efficacia anche per attività creative e di produzione multimediale
Dreame L10s Pro Ultra Heat: la pulizia di casa tutta sostanza
Dreame L10s Pro Ultra Heat: la pulizia di casa tutta sostanza
Il nuovo robot aspirapolvere domestico di Dreame abbina funzionalità complete a un moccio flottante che raggiunge al meglio gli angoli delle pareti. Un prodotto tutto in uno semplice da utilizzare ma molto efficace, in grado di rispondere al meglio alle necessità di pulizia della casa
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 09-06-2017, 22: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, 09: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, 21: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, 10: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, 13: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, 15: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, 18: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, 22: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, 16: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, 17: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, 20: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, 20: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, 20: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, 09: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, 15: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, 15: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, 15: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, 15: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


Apple MacBook Air M3: chi deve davvero comprarlo? La recensione Apple MacBook Air M3: chi deve davvero comprarlo...
ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ultrawide si fondono ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ul...
Dreame L10s Pro Ultra Heat: la pulizia di casa tutta sostanza Dreame L10s Pro Ultra Heat: la pulizia di casa t...
HONOR Magic6 Pro: come funziona Magic Portal, il modo ''intelligente'' di condividere HONOR Magic6 Pro: come funziona Magic Portal, il...
L'innovazione richiede fiducia: Workday si propone come guida nell'era dell'IA L'innovazione richiede fiducia: Workday si propo...
FuryGPU: un appassionato ha creato da ze...
Regno Unito, rischio apocalisse IA: mili...
Creato un transistor che può esse...
RocketStar FireStar Drive: un propulsore...
Roscosmos: il lancio del razzo spaziale ...
Italia strategica per Oracle. Arriva la ...
Sam-Bankman Fried: 25 anni di reclusione...
Mobility Analytics di WINDTRE Business p...
Il lander lunare JAXA SLIM si è r...
Warframe conquista l'iPhone: senza soluz...
Marvel Rivals!, l'inaspettato shooter Pv...
Twitch aggiorna le linee guida sui conte...
Galaxy M55 ufficiale: la nuova fascia me...
Google corregge sette vulnerabilit&agrav...
IA: le imprese italiane sono in prima li...
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: 08:18.


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