[ Foro de C ]
Hola, estoy intentado utilizar un sprintf para escribir el nombre de un archivo de texto en el que quiero escribir unos datos utilizando bucles for para crear los diferentes archivos. La cosa es que me sale el siguiente error :
" warning: universal character names are only valid in C++ and C99 [enabled by default]
int sprintf(nomb,"C:\Users\Gabi\Desktop\C\n%06ic%02i.dat",a,i);"
Mi codigo es
int dist[20][2][a];
int i,j,z;
FILE *fl;
char nomb[39];//n000000c00.dat
for(i=0;i<20;i++){ //casos
int sprintf(nomb,"C:\Users\Gabi\Desktop\C\n%06ic%02i.dat",a,i);
fl=fopen(nomb,"w");
fprintf(fl,"%5s\r\n","data;");
fprintf(fl,"%10s %3.0f %s \r\n","param n:=",a,';');
fprintf(fl,"%13s \r\n","param: x y :=");
srand(time(NULL));
for(j=0;i<a;i++){
dist[i][1][j] = rand()%100 +1;//valor de x
dist[i][2][j] = rand()%100 +1;//valor de y
fprintf(fl,"%i %i %i \r\n",j, dist[i][1][j],dist[i][2][j]);
}
}
fprintf(fl,"%s ", ";");
fclose(fl);
el valor de a está definido antes como un entero.
muchas gracias :D
No es un error en sentido estricto, sino un warning que no detiene la compilación pero te avisa de que quizá estés haciendo algo de forma incorrecta.
En tu caso, se debe a que \u se usa para escribir caracteres extendidos del juego de caracteres UTF-8, como en
printf("\u178");
En cambio, tú lo estás usando de forma incorrecta, porque no has duplicado las barras en la ruta que indica el nombre de fichero. Tu ruta debería ser así:
sprintf(nomb,"C:\\Users\\Gabi\\Desktop"); // ...
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)