Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-01-2005, 16: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, 20: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, 20: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, 06: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, 07: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, 13: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, 15: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, 17: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, 18: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, 18: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 18:45.
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 18: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, 19: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, 22: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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La prima missione orbitale del razzo spa...
Servizi in streaming sempre più c...
Anteprima della Leapmotor B03X: inizia l...
Anthropic accusa la Cina: Claude utilizz...
I satelliti Rassvet (Starlink russo) di ...
Un agente IA ha risolto un problema su W...
Cina: la CMSA potrebbe cambiare parte de...
68 mensilità di bonus per i dipen...
Rocket Lab ha fatto ricorso contro la de...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
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: 03:10.


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