Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
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


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...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
NASA: l'equipaggio di Crew-11 rientrer&a...
CoopVoce lancia le sue prime offerte 5G:...
Rivoluzione The Elder Scrolls Online: un...
Lo strapotere cinese è evidente c...
GeForce RTX 6000: niente SUPER e attesa ...
Anche gli Stati Uniti puntano il dito co...
È cinese la prima (enorme) pala e...
A Pechino è record di giorni con ...
Lenovo al CES 2026: Qira, IA ambientale ...
Le sette startup italiane che ridefinisc...
Philips Hue SpatialAware: la configurazi...
Sport & Lifestyle: performance, dati...
Le novità HP al CES 2026 tra AI P...
Gigabyte propone OLED per tutti con lumi...
Musk contro OpenAI, la guerra arriva in ...
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: 02:13.


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