Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-12-2004, 15:00   #1
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
[C]strutture semplici

salve ragazzi

sono sempre qui a rompere. Ho un problemino di questo tipo:

Codice:
#include <stdio.h>
#include <stdlib.h>
#define MAXIMUS 255

struct file_richiesta {
        int Codice_Cliente[9];
} richiesta;          /* struttura per file di richiesta con unico campo */


struct file_dati {
        int Codice_Sede[6];    /* File dati F24 */
        int Codice_Cliente[9];
        int Codice_Cliente[9];
        int C_CodiceCliente[3];
        int P_RichPag[12];     /* Sul modello F24 riportare solo le 6 cifre a destra */
        char Causale[3];
        double importo[18];    /*Espresso in centesimi di Euro */
} dati; /* fine file dati f24 */


struct dettaglio_premio {

        int Codice_Cliente[9];
        int ID_record[3]; /* da inserire solo valori tra : 01 03 05 per anni 2000 2001 2002 */
        double p_anticipatodip[19]; /* in centesimi di euro e il primo carattere rappresenta il segno  */
        double p_anticipatoart[19];
        double p_regolazionedip[19];
        double p_regolazioneart[19];
        double p_gestionespec[19];
} premio; /* Fine Dettaglio Premio */

struct dettaglio_addizionale {
        int Codice_Cliente[9];
        int ID_record[3]; /* da inserire solo valori tra 02 04 06  per anni 2000 2001 2002 */
        double importo_totalepr[18]; /*in centesimi di euro */
        double Misura_Addizionale[18];
        double importo_dovuto[18];
        double impadd_art[18]; /* addizionale art.181 */
        double imp_totaledov[18];
} addizionale;

int main()
{
        FILE *fp;
        char nomefile[] = "\home\RaouL\Desktop\inail\inail.txt" ;
        int scelta;
        for ( ; ; )
        {
                printf("\n1) Inserimento dati\n");
                printf("\n2) Uscita Programma\n");
                scanf("%d" &scelta);

                if( scelta < 1 ||  scelta > 2)
                        printf("Scelta non valida!");
                else if (scelta == 2)
                        printf("Programma terminato con successo");
                        break;
        }
}
:syntax on
Come vedete, ci sono quattro strutture, che servono a contenere determinati dati. Ora, mi era parso di capire che in strutture diverse fra di loro, potevo anche dichiarare delle variabili con lo stesso nome, ma a quanto pare, non devo aver capito bene

Difatti, questo è il risultato di gcc:

Codice:
  gcc -Wall inail.c -o inail
inail.c:13: error: duplicate member `Codice_Cliente'
Come mai?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek

Ultima modifica di RaouL_BennetH : 15-12-2004 alle 15:04.
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2004, 15:02   #2
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
trovato l'errore

E sono sempre un pirla atomico, effettivamente l'avevo dichiarata due volte dentro la stessa struttura!!
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2004, 15:33   #3
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
A pensarci bene, così come lo starei pensando questo programmino fa acqua da tutte le parti

Vorrei invece farlo così:

Mi creo un file strutture.c che contenga solo le strutture
e poi il file main.c che invece si occupi di gestire gli input e la memorizzazione dei dati su un file.

Sarebbe meglio così oppure è indifferente?

Nel caso in cui sia meglio, mi dareste qualche chiarimento su come "legare" due files diversi fra loro nella compilazione?

Thx.

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2004, 15:53   #4
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
uhm.....

sto provando ad inserire solo due dati e a scriverli nel file di testo ma...

succede questo:

se inserisco per int Codice_Cliente[9]; il valore 12345678 poi, nel file mi riporta non so perchè: 13657888

?!?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2004, 16:25   #5
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
allora, ho scovato due errori:

Codice:
fprintf(fp, "%d %d\n", richiesta.Codice_Cliente, dati.Codice_Scheda);
andava senza l'operatore "&" davanti ai dati delle strutture.

Ok, però, mi funziona solo nel caso in cui io dichiari tale dato non come un array ma come una variabile singola; mi spiego meglio:

Codice:
 /* con questo codice non mi riconosce il numero inserito */

int codice_cliente[9] ;

/* con questo codice me lo scrive correttamente */

int codice_cliente;
a me serviva limitare l'ampiezza di tale campo perchè si possono inserire solo fino ad 8 cifre, oer questo avevo dichiarato l'array di 9 elementi, considerando il carattere null di fine riga. Mi potreste chiarire un pò le idee?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2004, 16:29   #6
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da RaouL_BennetH
a me serviva limitare l'ampiezza di tale campo perchè si possono inserire solo fino ad 8 cifre, oer questo avevo dichiarato l'array di 9 elementi, considerando il carattere null di fine riga. Mi potreste chiarire un pò le idee?
....?
int foo[9] dichiara un array di 9 interi, non ha nulla a che vedere con le "cifre" che compongono il numero. "Carattere di fine riga" riguarda le stringhe, non i numeri.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2004, 16:34   #7
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da ilsensine
....?
int foo[9] dichiara un array di 9 interi, non ha nulla a che vedere con le "cifre" che compongono il numero. "Carattere di fine riga" riguarda le stringhe, non i numeri.


è vero, che pirla che sono

Quindi, su variabili di tipo int, come si può limitare l'inuput da parte dell'utente?

Cioè, io avrei bisogno che all'inserimento del valore di quella variabile, l'utente non possa immettere più di 8 cifre.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2004, 09:13   #8
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Immetti una stringa, fai i controlli che devi fare, e la converti in intero con atoi.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 13:18   #9
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quindi, stavo pensando a questo:

Potrei trattare tutti i dati che vengono richiesti come char e poi convertirli?

Se è conveniente, potrei anzichè creare millemila variabili di tipo char, creare un unico array tipo:

char dati_richiesti[1000] e poi pensare come assegnare a dati_richiesti[1] il codice cliente (ad esempio), a dati_richiesti[2] l'importo e così via?

e poi gestirli con un indice? (int i)
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2004, 16:23   #10
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Se per te è importante controllare dettagliatamente l'input, leggilo con fgets e poi fai tutto quello che devi fare.
Quote:
Se è conveniente, potrei anzichè creare millemila variabili di tipo char, creare un unico array tipo:

char dati_richiesti[1000] e poi pensare come assegnare a dati_richiesti[1] il codice cliente (ad esempio), a dati_richiesti[2] l'importo e così via?
...?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 25-12-2004, 14:27   #11
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da ilsensine

...?
Hai ragione, mi sono spiegato malissimo

volevo dire che, se al posto di fare:

Codice:
char codice[10]
char settore[10]
char cognome[10]
char nome[10]

etcetera......

mi conveniva di più fare:

char dati_generici[1000]
ed utilizzare poi i singoli elementi di dati_generici per memorizzare i vari valori.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
iPhone 18 Pro, si parla di 200-300 euro ...
La società cinese Landspace &egra...
Un mese di stretta di Instagram, i video...
Anche Geely sale sul treno dello stato s...
Spotify porta Running Mode su Android: l...
Il meglio di Amazon in 5 offerte super s...
Apple abbassa le barriere per gli store ...
Scatole cinesi per NIO: le stazioni di s...
L'algoritmo di X premia quello che ti fa...
32GB di RAM, 1TB di SSD, processore Core...
Copilot raggirato con un comando nell'UR...
Quando esce la PS6? Nemmeno il CEO di So...
NVIDIA porta GeForce NOW su Firefox: fin...
Monitor gaming Xiaomi 24" Full HD d...
Aggiornati i coupon nascosti Amazon, 8 e...
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: 09:33.


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