Hi! I wanted to thank you a lot for the help given yesterday... It`s so great to have people so well prepared trying to help you! I have another problem: the bold line : strcat want a pointer as argument, but probably i'm mistaking it ... can anybody help me? Code: #include <stdio.h> #include <string.h> main () { int i; char j; char *ip; for (i = 0; i < 10; i++) { ip=&j; for (j = 0; j<3; j++) { FILE *fp; char filename[17] ; if (i == 0) { strcpy(filename, "injection-0"); if (j==0) strcat(filename,"_11.txt"); [B]else if (j==1) strcat (filename,*ip)[/B]; else if (j==2) strcat (filename,"_12.txt"); } if ((fp = fopen(filename, "w")) != NULL) { fprintf(fp, "mass_part mass_flow_part diam_part accretion surf_ID cel_ID temp vel_abs vel_nor vx vy vz Ax Ay Az Angle Wa Wb Wc WEAR\n"); fclose(fp); } } } } Edited by DaWei to add code tags. Please do this yourself, in future.
ip is a pointer to a char, not to an array of char (a string), as required by strcat. You also have a potentially bad issue: unless you have a C99 compliant C compiler, you'll have problems if you declare variables down in the body of the code. For C code, put all your declarations at the top, before any runtime statements. Even if your compiler tolerates it, it isn't portable code. If you're writing C and compiling it as C++, that's not a Good Thang. On the issue of formatting, please put your code in code tags, hereafter. Read the "Before you make a query" thread. I'd also recommend paying a little more attention to your formatting. Be consistent with your indentation. If you're planning on being a professional, someone else is going to wind up maintaining your code. They might be big, muscular, and mean.
Thanks for your advices DaWei! I will remember them! Is it possible to concatenate just an int to the char filename? In that case I would be safe...
Just as a reminder, move the red statements to where shown in blue. This is a scoping issue that will affect portability of C code. It's great in C++. Code: main () { int i; char j; char *ip; [COLOR=Blue]FILE *fp;[/COLOR] [COLOR=Blue]char filename[17] ;[/COLOR] for (i = 0; i < 10; i++) { ip=&j; for (j = 0; j<3; j++) { [COLOR=Red]FILE *fp;[/COLOR] [COLOR=Red]char filename[17] ;[/COLOR] ...