Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-01-2005, 17:30   #1
-Yara-
Senior Member
 
L'Avatar di -Yara-
 
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
[c++]visualizzazione file

Salve a tutti.
Un po per sfizio sto cercando di sviluppare una semplice agenda in c++ che chieda i nomi e le date da tastiera e le scriva su un file.
Fino qua il programa funzione egregiamente...
Poi pero' voglio mostare a schermo anche il contenuto di quale file...e qui iniziano i problemi , non funziona la funzione visualizzazione();.
Vi posto il codice(metto php cosi nono perde l'indentazione):
Codice PHP:
#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

void inserimento();     //prototipo delle
void visualizzazione(); //funzioni

FILE *save;

int main(void)
{
save=fopen("save.txt","w+"); //creo il file save.txt
fputs("~Nomi~  ~Date~",save);
char risp[4],risp2[4];
cout<<"Benvenuti in AGENDA V 0.1"<<endl;
cout<<"Si desidera proseguire? (yes or no)";
gets(risp);
if(!
strcmp("yes",risp))
    {
    
inserimento();
    }
cout<<"Desideri vedere il contenuto del file?(yes or no)";
cin>>risp2;
if(!
strcmp("yes",risp2))
    {
    
visualizzazione();
    }
getchar();
}
//Funzione per l'inserimento
void inserimento()
{
const 
int righe=5,lettere=20;
char nome[righe][lettere];
char date[righe][lettere];
int i;
for(
i=0;i<righe;i++)
    {
    
cout<<"Inserire il nome di posto "<<i<<endl;
    
gets(nome[i]);
    
cout<<"Inserire la data di nascita di "<<nome[i]<<endl;
    
gets(date[i]);
    
fputs("\n",save);
    
fputs(nome[i],save);
    
fputs(" ",save);
    
fputs(date[i],save);
    }        
return;
}
//Funzione per la visualizzazione
void visualizzazione()
{
char str[20];
fgets(str,255,save);
cout<<str;
return;

__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school
Wind FTTE Vula 100/20 - Stats
Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2005, 21:29   #2
sirus
Senior Member
 
Iscritto dal: Mar 2004
Messaggi: 16053
io da programmatore consiglierei di implementare una struttura composta da un campo Nome e da un campo Data
Codice:
typedef struct DatiPersona
{
    char Nome[20];
    char _1;              // Spazio
    char Data[10];    // Rispettando la strutura __/__/____
    char CR;              // Legge il carattere CR
    char LF;               // Legge il carattere LF
} Record;
poi per l'acquisizione puoi fare così
Codice:
fread (&Record,sizeof (DatiPersona),1,save);
per la stampa
Codice:
puts (Record.Nome);
printf (" ");
puts (Record.Data);
printf ("\n");
PS ovviamente buttando giù 2 idee, prova a vedere se il codice funziona
sirus è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2005, 21:50   #3
-Yara-
Senior Member
 
L'Avatar di -Yara-
 
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
decisamente non sono a quel livello...mi potresti dire perchè la funzione visualizzazione non funziona?
Intanto ho modificato il codice...:
Codice PHP:
/****************************** 
**  Creare un'agenda in C++  **
**  Version 0.2              **
*******************************/

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

void inserimento();     //prototipo delle
void visualizzazione(); //funzioni

FILE *save;

int main(void)
{
system("/bin/sh -c clear");  
save=fopen("save.txt","w+"); //creo il file save.txt
fputs("~Nomi~ | ~Date~",save);
int risp;
char risp2[4];
cout<<"Benvenuti in AGENDA V 0.2"<<endl;
do
{
cout<<"[1]-Inserire nomi e date nel file"<<endl;
cout<<"[2]-Visualizzare il contenuto del file"<<endl;
cin>>risp;
}while(
risp<&& risp>2);
switch(
risp)
    {
    case 
1:{inserimento();}break;
    case 
2:{visualizzazione();}break;
    };
getchar();
}

//Funzione per l'inserimento
void inserimento()
{
const 
int righe=5,lettere=20;
char nome[righe][lettere];
char date[righe][lettere];
int nomi,i;

do
{
cout<<"Quanti nomi vuoi inserire? ";
cin>>nomi;
}while(
nomi>4);

for(
i=0;i<nomi;i++) //non mi fa inserire il nome di posto 0!! perchè??
    
{
    
cout<<"Inserire il nome di posto "<<i;
    
gets(nome[i]);
    
cout<<"Inserire la data di nascita di "<<nome[i]<<endl;
    
gets(date[i]);
    
fputs("\n",save);
    
fputs(nome[i],save);
    
fputs(" ",save);
    
fputs(date[i],save);
    }        
return;
}

//Funzione per la visualizzazione
void visualizzazione() //questa non va
{
char str[30];
fgets(str,255,save);
cout<<str;
return;

__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school
Wind FTTE Vula 100/20 - Stats
Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 07:21   #4
-Yara-
Senior Member
 
L'Avatar di -Yara-
 
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
up
__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school
Wind FTTE Vula 100/20 - Stats
Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 08:41   #5
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
Cosa vuol dire non funziona? Si blocca? Non scrive niente?
Forse è perchè devi dichiarare più grande la stringa, del tipo char str[255]; In più, fgets ti mostrerà solo la prima riga del file, quindi dovresti porre così la funzione:

Codice:
void Visualizzazione()
{
    while(!feof(save))
    {
         char str[255];
         fgets(str,255,save);
         cout<<str;
    }
}
Infine, non hai bisogno di un return alla fine della funzione void.
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 14:27   #6
-Yara-
Senior Member
 
L'Avatar di -Yara-
 
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
Ti ringrazio..pero' ho un altro problema nella funzione iserimento();

Codice PHP:
void inserimento()
{
const 
int righe=5,lettere=20;
char nome[righe][lettere];
char date[righe][lettere];
int nomi,i;

do
{
cout<<"Quanti nomi vuoi inserire? ";
cin>>nomi;
}while(
nomi>4);

for(
i=0;i<nomi;i++) //non mi fa inserire il nome di posto 0!! perchè??
    
{
    
cout<<"Inserire il nome di posto "<<i;
    
gets(nome[i]);
    
cout<<"Inserire la data di nascita di "<<nome[i]<<endl;
    
gets(date[i]);
    
fputs("\n",save);
    
fputs(nome[i],save);
    
fputs(" ",save);
    
fputs(date[i],save);
    }        
return;

Come da commento non mi fa inserire il nome di posto 0! Perchè
__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school
Wind FTTE Vula 100/20 - Stats
Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 16:17   #7
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
Prova a partire da -1...
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 18:11   #8
-Yara-
Senior Member
 
L'Avatar di -Yara-
 
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
Niente da fare....neanche se parto da 1 e neanche da -1 funziona
Vorrei proprio capire perchè.....tra l'altro ho portato il programma su una macchina windows e funziona -__________________________-
__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school
Wind FTTE Vula 100/20 - Stats
Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 19:33   #9
NA01
Senior Member
 
L'Avatar di NA01
 
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
prova a passarlo con gdb o un altro debugger e guarda che cosa fa.

ciao!
NA01 è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 19:40   #10
-Yara-
Senior Member
 
L'Avatar di -Yara-
 
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
Quote:
Originariamente inviato da NA01
prova a passarlo con gdb o un altro debugger e guarda che cosa fa.

ciao!
Ottima idea! nn ci avevo pensato...
Grazie ora provo


EDIT: ma come si usa? Io da shell faccio $ gdb a.out
ed ecco l'output:
Codice:
GNU gdb 6.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-suse-linux"...Using host libthread_db library "/lib/tls/libthread_db.so.1".

(gdb)
__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school
Wind FTTE Vula 100/20 - Stats
Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX

Ultima modifica di -Yara- : 27-01-2005 alle 19:45.
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 19:44   #11
NA01
Senior Member
 
L'Avatar di NA01
 
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
fammi sapere cosa era!!!
l'ultima votla che ho passato la mia giornata davanti a un debugger mi sono accorto alla fine che in fooooooooooooooooooooooondo al programma più lungo che avessi mai scritto c'era una uguale in meno del previsto
molto più divertente la volta che un banale i++ faceva passare il mio long int da 127 a -127 non ho mai capito il perchè
NA01 è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 20:15   #12
-Yara-
Senior Member
 
L'Avatar di -Yara-
 
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
Ho editato sopra
__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school
Wind FTTE Vula 100/20 - Stats
Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 23:25   #13
NA01
Senior Member
 
L'Avatar di NA01
 
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
mmmmh se non lo hai mai usato usa ddd (è un front end).
imposti il break alla linea che vuoi con il pulsante e poi vai di step.
con il mouse vedi il valore delle variabili (ci passi sopra)

ciao
NA01 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Il primo SUV R2 di Rivian esce dalla cat...
Auricolari Bluetooth a rischio: la falla...
Modificare il nuovo indirizzo Gmail è fi...
TV 4K in offerta su Amazon: QLED Hisense...
Tesla ha ora la sua raffineria di litio:...
Ancora aumenti per Fastweb: nuove condiz...
GeForce RTX 5070 Ti: intervengono ASUS e...
Xiaomi Redmi Note 15 Pro subito giù di p...
SiFive adotta NVLink Fusion: RISC-V si i...
Amazon ha annunciato la fine di New Worl...
Umidità addio: deumidificatori el...
Konami festeggia 950 milioni di download...
Modelli gen AI sul tuo Raspberry Pi? Con...
Il CEO di Nothing, Carl Pei, avverte: i ...
Serie A, richieste di risarcimento agli ...
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: 11:50.


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