Me suscribo. Me acabo de dar cuenta que en realidad me enseñaron a programar mal en la prepa, por esas deficiencias y mis malos hábitos valí 🍆 berenjena en mis cursos universitarios de programación. Creo que era turbo pascal lo que nos enseñaron y decían que era C o hasta C++. 😢 Me deprimí, pero ya se me pasó 😂 Gracias por abrirme los ojos ✌️😆
Gracias por comentar, ya ha probado pausar el sistema sin system("pause); ?, en un video anterior recomendé getch(); para este fin y les compartí el porque es mas profesional y beneficioso su uso.
También si lo que buscan es dejar un valor por defecto o que usuario tecle 'enter' pero sin que el programa se quede congelado (lo que pasa usualmente con *scanf* y *cin*) *getline* es su mejor amigo, una desventaja es que todo los datos digitalizados los captura como tipo cadena de texto (*string*), así que si quieren digitalizar un numero de tipo *int* o cualquier tipo de coma flotante, pueden usar funciones de conversión dentro de la cabecera de *string*, las funciones *stoi* para tipos enteros, *stof* para flotantes y cualquier otro tipo de dato int main() { std::string leer; int edad;
Bienvenido barry, en el lenguaje C scanf es obligatorio, en C++ no lo es y en la mayoría de casos tampoco significa ninguna ventaja, por lo menos para lo usual, aunque supongamos que usted quiere por algún motivo capturar únicamente el primer carácter que el usuario escriba, con scanf lo haría de la siguiente forma "scanf("%c", mivariable);" muy fácil como puede observar, sin scanf, pero es necesario añadir mas código si se piensa utilizar cin para este objetivo.
@@Codigazo Gracias, el caso es que quiero que mis codigos sean lo mas rapido posible por tanto estoy buscando las opciones mas eficientes (programo en c++) , me a gustado tu canal
uso scanf y cuando llamo a scanf por segunda vez ya no me acepta el parametro y otra pregunta ¿Como le hago para que scanf me acepte espacios en blanco similar a getline?
Hola Carlos, en cuanto a lo de aceptar espacios en blanco lo único que tendría que cambiar es el formato de scanf colocando la siguiente bandera "%100[0-9a-zA-Z ]" ahí lo que estamos haciendo es indicándole que caracteres queremos aceptar, si presta atención podrá observar que posterior a la Z mayúscula hemos dejado un espacio en blanco, por lo tanto el espacio en blanco también será aceptado, el siguiente código funciona al 100% puede probarlo. #include #include char str[100]; int main(){ scanf("%100[0-9a-zA-Z ]", str); printf("String read was %s ",str); getch(); return 0; } En cuanto al problema de llamar scanf por segunda vez tendría usted que compartir el código que tiene para analizarlo.
@@Codigazo La cosa aquí es que cuando mezclo entre pedir números y cadenas, la cadena ya no me la pide, leí que "enter" te lo toma como el siguiente caracter y entra a la cadena. Por ejemplos #include int main() { char hola[20]; int adios; printf("Escribe un número"); scanf("%d", &adios); printf("Hello World "); scanf("%100[0-9a-zA-Z ]", hola); printf(" palabra: %s", hola); return 0; }
muchas gracias. .. por una explicacion. Limpia y clara. Como tambien directa
Me suscribo. Me acabo de dar cuenta que en realidad me enseñaron a programar mal en la prepa, por esas deficiencias y mis malos hábitos valí 🍆 berenjena en mis cursos universitarios de programación. Creo que era turbo pascal lo que nos enseñaron y decían que era C o hasta C++. 😢
Me deprimí, pero ya se me pasó 😂
Gracias por abrirme los ojos ✌️😆
Gracias por el video, actualmente estoy aprendiendo c++ y no sabia de (getline) hasta que lo probe
Gracias por comentar, ya ha probado pausar el sistema sin system("pause); ?, en un video anterior recomendé getch(); para este fin y les compartí el porque es mas profesional y beneficioso su uso.
Excelente explicación, muy clara
También si lo que buscan es dejar un valor por defecto o que usuario tecle 'enter' pero sin que el programa se quede congelado (lo que pasa usualmente con *scanf* y *cin*) *getline* es su mejor amigo, una desventaja es que todo los datos digitalizados los captura como tipo cadena de texto (*string*), así que si quieren digitalizar un numero de tipo *int* o cualquier tipo de coma flotante, pueden usar funciones de conversión dentro de la cabecera de *string*, las funciones *stoi* para tipos enteros, *stof* para flotantes y cualquier otro tipo de dato
int main() {
std::string leer;
int edad;
std::cout
LIKE, SUSCRITO Y CAMPANITA, GRACIAS TOTALES
Bienvenido Angel, permítame agradecerle por por el apoyo, espero continuar siéndole de ayuda.
Hay alguna ventaja de usar scanf en lugar de cin?
Bienvenido barry, en el lenguaje C scanf es obligatorio, en C++ no lo es y en la mayoría de casos tampoco significa ninguna ventaja, por lo menos para lo usual, aunque supongamos que usted quiere por algún motivo capturar únicamente el primer carácter que el usuario escriba, con scanf lo haría de la siguiente forma "scanf("%c", mivariable);" muy fácil como puede observar, sin scanf, pero es necesario añadir mas código si se piensa utilizar cin para este objetivo.
@@Codigazo Gracias, el caso es que quiero que mis codigos sean lo mas rapido posible por tanto estoy buscando las opciones mas eficientes (programo en c++) , me a gustado tu canal
uso scanf y cuando llamo a scanf por segunda vez ya no me acepta el parametro y otra pregunta ¿Como le hago para que scanf me acepte espacios en blanco similar a getline?
Hola Carlos, en cuanto a lo de aceptar espacios en blanco lo único que tendría que cambiar es el formato de scanf colocando la siguiente bandera "%100[0-9a-zA-Z ]" ahí lo que estamos haciendo es indicándole que caracteres queremos aceptar, si presta atención podrá observar que posterior a la Z mayúscula hemos dejado un espacio en blanco, por lo tanto el espacio en blanco también será aceptado, el siguiente código funciona al 100% puede probarlo.
#include
#include
char str[100];
int main(){
scanf("%100[0-9a-zA-Z ]", str);
printf("String read was %s
",str);
getch();
return 0;
}
En cuanto al problema de llamar scanf por segunda vez tendría usted que compartir el código que tiene para analizarlo.
@@Codigazo La cosa aquí es que cuando mezclo entre pedir números y cadenas, la cadena ya no me la pide, leí que "enter" te lo toma como el siguiente caracter y entra a la cadena. Por ejemplos
#include
int main()
{
char hola[20];
int adios;
printf("Escribe un número");
scanf("%d", &adios);
printf("Hello World
");
scanf("%100[0-9a-zA-Z ]", hola);
printf("
palabra: %s", hola);
return 0;
}