Re: [OT] Programacion en c, scanf con espacios en blanco
El scanf se utiliza más en momentos en los que quieres sacar datos de
cadenas con un formato que conoces, pero si lo que quieres es simplemente
sacar cadenas, es posible que te de problemas (por el tema de los espacios).
Sé un poco más específico... qué cadenas procesar con el scanf? Sólo quieres
recuperar chars?
Puedes probar con getchar, pero volvemos a lo mismo, necesitarás decirle a
tu programa cuando termina la cadena... si es de ancho fijo será por su
longitud, si es linea por linea será cuando encuentre el char 10... y así :P
Y qué te ha dicho el señor gcc del gets()!?!? XD
Si, por ejemplo, quisieras procesar un archivo linea por linea... pues:
/* INICIO prueba.c */
#define MAX 1024 /* máximo tamaño para cada línea */
void procesa_linea(char *linea) {
/* esta funcion se llamará 1 vez por linea, el
* argumento será la línea en sí claro */
printf("NUEVA LINEA: %s\n", linea);
return;
}
int main() {
char c;
char buf[MAX] = {0};
while ((c = getchar()) != -1) {
if (c == 13) continue; /* por si el archivo viene de un windows */
if (c == 10) {
procesa_linea(buf);
buf[0] = '\0';
continue;
}
sprintf(buf, "%s%c", buf, c);
}
return 0;
}
/* FIN prueba.c */
Ahora compilas -> gcc prueba.c -o prueba
Y luego "cat archivo | ./prueba | less"
Evidentemente esto no está depurado.
Si quieres que en lugar de leer del stdin quieres leer de un archivo, puedes
utilizar el fgetc...
Espero que te ayude de algo, aunque si especificas algo más... pues más
ayuda recibirás :D
Saludos.
---------------------------------------------
Arnau Carrasco - http://www.arnaucarrasco.com
---------------------------------------------
----- Original Message -----
From: "Enrique Jiménez Campos" <ejcampos@gmail.com>
To: <debian-user-spanish@lists.debian.org>
Sent: Friday, March 02, 2007 4:21 PM
Subject: [OT] Programacion en c, scanf con espacios en blanco
Buenas, mi duda es que si hay alguna manera de usar scanf con el parametro
%s
para guardar cadenas de caracteres con espacios, me gustaria saberlo ya
que
al gcc no parece gustarle demasiao gets().
Un saludo
--
To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact
listmaster@lists.debian.org
Reply to: