|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
[C++]Problema lettura
Ho il seguente file:
Quote:
Codice:
#include <cstdio>
#include <cstdlib>
#include <string>
using namespace std;
struct Info
{
char * nm;
int gpu_c;
int mem_c;
int bus_c;
int mem_t;
};
int main(int argc, char * argv[])
{
Info sk_video;
memset(&sk_video, 0, sizeof(Info));
FILE * f = fopen("fx5200.txt", "r");
fread(&sk_video, sizeof(Info), 1, f);
// fscanf(f, "%s %d %d %d %d", &sk_video);
char sc;
printf
(
"Model Name => %s, \n \
Gpu Clock => %i \n \
Memory Clock => %i \n \
Bus type => %i \n \
Memory Installed => %i \n",
&sk_video.nm,
&sk_video.gpu_c,
&sk_video.mem_c,
&sk_video.bus_c,
&sk_video.mem_t
);
scanf("%s", &sc);
fclose(f);
return 0;
}
Tnk && HELP :dhò:
__________________
Gnu/Linux User
|
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Perchè non hai allocato lo memoria per la stringa...
char *nm è un puntatore a char e non una stringa... char nm[100] è una stringa...ma attento alla lettura dal file con fread...non funziona fread su una stringa...a meno che la stessa sia stata scritta precedentemente tramite fwrite... In pratica ci dovrebbero essere 100 caratteri sula prima riga |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
Codice:
#include <cstdio>
#include <cstdlib>
#include <string>
using namespace std;
struct Info
{
int gpu_c;
int mem_c;
int bus_c;
int mem_t;
char nm[50];
};
int main(int argc, char * argv[])
{
Info sk_video;
memset(&sk_video, 0, sizeof(Info));
FILE * f = fopen("fx5200.txt", "r");
// fread(&sk_video, sizeof(Info), 1, f);
fscanf
(f,
"%s\n %d\n %d\n %d\n %d",
&sk_video.nm,
&sk_video.gpu_c,
&sk_video.mem_c,
&sk_video.bus_c,
&sk_video.mem_t
);
char sc;
printf
(
"Model Name => %s, \n \
Gpu Clock => %d Mhz \n \
Memory Clock => %d Mhz \n \
Bus type => %d bit \n \
Memory Installed => %d Mb \n",
&sk_video.nm,
&sk_video.gpu_c,
&sk_video.mem_c,
&sk_video.bus_c,
&sk_video.mem_t
);
scanf("%s", &sc);
fclose(f);
return 0;
}
__________________
Gnu/Linux User
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
ed ecco il ris del codice di sopra......
...................
__________________
Gnu/Linux User
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
fscanf
(f, "%s\n %d\n %d\n %d\n %d", sk_video.nm, &sk_video.gpu_c, &sk_video.mem_c, &sk_video.bus_c, &sk_video.mem_t ); printf ( "Model Name => %s, \n \ Gpu Clock => %d Mhz \n \ Memory Clock => %d Mhz \n \ Bus type => %d bit \n \ Memory Installed => %d Mb \n", sk_video.nm, sk_video.gpu_c, sk_video.mem_c, sk_video.bus_c, sk_video.mem_t ); |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
nn cambia nulla
__________________
Gnu/Linux User
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
risolto:
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _Info
{
char nm[50]; /* the board name */
int gpu_c; /* the GPU clock */
int mem_c; /* the me clock */
int bus_c; /* the bus */
int mem_t; /* the installed memory */
}Info;
int main(int argc, char * argv[])
{
char sk[50] ;
strcpy(sk, argv[1]);
/* puts("\t\tDB SKEDE VIDEO\n");
puts("Inserire il nome delle skeda cercata tutto attaccato e seguito da .txt");
scanf("%s", &sk); */
Info sk_video;
memset(&sk_video, 0, sizeof(Info));
FILE * f = fopen(sk, "r");
fscanf
(f,
"%s %d %d %d %d",
&sk_video.nm,
&sk_video.gpu_c,
&sk_video.mem_c,
&sk_video.bus_c,
&sk_video.mem_t
);
fclose(f);
printf
(
"Model Name => %s \n \
Gpu Clock => %d Mhz \n \
Memory Clock => %d Mhz \n \
Bus type => %d bit \n \
Memory Installed => %d Mb \n",
sk_video.nm,
sk_video.gpu_c,
sk_video.mem_c,
sk_video.bus_c,
sk_video.mem_t
);
char sc;
puts("Enter any key to exit\n");
scanf("%s", &sc);
return 0;
}
__________________
Gnu/Linux User
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ti avevo cambiato anche la printf, ma non l'avevo evidenziata...
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
&sk_video.nm non ci vuole la &...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:45.



















