He leido varios post sobre como leer una cadenas con espacio donde recomiendan usar fgets() o getline() en vez de cin.
Aquello funciona cuando la variable es declarada char[], pero yo tengo mis variables string... que me recomiendan?
getline(cin, string);
e c++
getline() tambien sierve para string (es mas recomendable usar string que char en esta funcion)...
en c-ansi
#include <stdio.h>
#include <stdlib.h>
char *readLine(FILE *file) {
char *line = (char*)malloc(1);
size_t size = 0;
while ((line[size] = getchar()) != '\n')
line = (char*)realloc(line, ++size + 1);
line[size] = '\0';
return line;
}
int main() { // ==============
char cmd[512];
char *path; // MAX_PATH = 256
puts("Ruta a crear");
path = readLine(stdin); // leemos una linea desde el buffer de entrada del teclado
sprintf(cmd, "mkdir \"%s\"", path); // construimos la cadena por ejemplo: mkdir "c:\Hola Mundo desde C-ANSI"
system(cmd); // Ejecutamos.
free(path);
getchar();
return EXIT_SUCCESS;
}
Dulces Lunas!¡.
Solo para redondear el aporte de bemone.
Si no tienes una referencia de calidad sobre la biblioteca estándar de C++ puedes utilizar una en linea. Solo por mencionar una (por cierto muy buena): descripción y ejemplo (en ingles) de la funcion "getline" cortesia del sitio C plus plus se encuentra en esta pagina (http://www.cplusplus.com/reference/string/getline/).
Un saludo
Muchas gracias, he solucionado mi problema.