Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
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


Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Cos'è RSL, il nuovo standard che ...
Nissan Micra EV: da 29.500 a oltre 36.00...
Processo Microsoft-ValueLicensing: cosa ...
L'edizione limitata più ambita da...
Lo sviluppatore di MSI Afterburner svela...
Quando l'AI diventa maestro: così...
Sony WH-1000XM6 già scontate su A...
NVIDIA chiede più velocità...
Windows 11 in soli 2,8 GB: con questo sc...
Panico in casa HYTE: ritirato dal mercat...
OPPO Reno14, debutto tra rooftoop esclus...
3DAIQ, il progetto di Concept Reply e TE...
Il parlamento francese contro TikTok: '&...
Apple Watch SE 2ª gen. Cellular a soli 2...
MotoE sospesa dopo il 2025: fine tempora...
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: 00:17.


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