|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Firenze
Messaggi: 369
|
funzione in C con un file csv in output
ciao...sto cercando di creare una funzione in C che dia in output un file csv partendo da una matrice interna al programma
Codice:
void creazione() {
FILE *fl;
int i,j;
fl=fopen("out.csv","a+");
for (i=0;i<X;++i) {
char *vex=(char *)malloc(2000*sizeof(char *));
for (j=0;j<Y;j++) {
strcat(vex,mat[i][j]);
strcat(vex,",");
}
fputs(vex, fl);
free(vex);
}
fclose(fl);
}
Codice:
1 2 3 4 5 6 Codice:
1,2,3 4,5,6 Codice:
x=1,2,3 ,x=4,5,6 ,
__________________
...meglio la carne che l'osso
Ultima modifica di antimon : 13-06-2007 alle 17:45. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Poi comunque non servirebbe nemmeno allocare memoria. Tra l'altro, tu allochi memoria ma non la inizializzi. strcat si aspetta di trovare una stringa terminata dal nullo a cui accodare la nuova stringa. Ti conviene usare delle semplici fprintf.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
perche nn provi a fare cosi
Codice:
void creazione() {
FILE *fl;
int i,j;
fl=fopen("out.csv","a+");
for (i=0;i<X;++i) {
for (j=0;j<Y;j++) {
fprintf("%i",mat[i][j]);
if(j<Y)fprintf("%s",",");
}
fprintf("%s","\n\r");
}
fclose(fl);
}
http://www.cplusplus.com/reference/c...o/fprintf.html |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Firenze
Messaggi: 369
|
la matrice è di puntatori a stringhe e non conosco le dimensioni delle stringhe. la matrice è stata creata da un file csv in input allocando memoria con malloc
__________________
...meglio la carne che l'osso
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Firenze
Messaggi: 369
|
ho seguito le indicazioni di tglman inserendo questo codice:
Codice:
void creazione() {
FILE *fl;
int i,j;
fl=fopen("out.csv","a+");
for (i=0;i<X;++i) {
for (j=0;j<Y;j++) {
fprintf(fl, "%s",mat[i][j]);
if(j<Y)fprintf(fl,"%s",",");
}
fprintf(fl,"%s","\n\r");
}
fclose(fl);
}
Codice:
1,2,3 , 4,5,6 ,
__________________
...meglio la carne che l'osso
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Ti conviene farlo così: Codice:
for (i=0;i<X;++i) {
for (j=0;j<Y;j++) {
fprintf(fl, "%s", mat[i][j]);
if (j<Y-1)
fprintf(fl, ",");
}
fprintf (fl, "\n");
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Feb 2006
Città: Firenze
Messaggi: 369
|
Quote:
Codice:
void creazione() {
FILE *fl;
int i,j;
fl=fopen("out.csv","a+");
for (i=0;i<X;++i) {
for (j=0;j<Y;j++) {
fprintf(fl, "%s",mat[i][j]);
if(j<(Y-1))fprintf(fl, ",");
}
}
fclose(fl);
}
__________________
...meglio la carne che l'osso
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:31.




















