elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  sentencia switch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: sentencia switch  (Leído 1,204 veces)
Dumy

Desconectado Desconectado

Mensajes: 23


Ver Perfil
sentencia switch
« en: 27 Septiembre 2024, 18:21 pm »

Hola

tengo el siguiente codigo:


int main(void) {

   int numero;
   numero = 0;

   char nyu[MAX_SIZE]="D:\\producto2.txt"; //esta es la cadena donde guardaremos la ubicación y nombre del archivo
                                           //debido a que le daremos esa información concreta, "hay que iniciarla" 

   printf("A continuación se mostraran diferentes opciones, cada una hace una cosa diferente \n");
   printf("Opción 1: Insertar la hora y la fecha en el documento de salida: producto2.txt \n");
   printf("Opción 2: Comprobar e informar por pantalla sobre cuáles de una lista de máquinas referenciadas por su IP escrita en un archivo de texto, contestan positivamente a un ping lanzado por la aplicación que estás programando \n");
   printf("Opción 3: Mostrar y guardar en un fichero llamado adaptador.txt, la configuración de red de la máquina local para un adaptador que previamente se preguntará al usuario \n");

   printf("Selecciona una opción : \n");
   
   if(scanf("%d", &numero) != 1) {
   
      printf("ERROR: Programa mal escrito\n");
      
      return 0;
   
   }

   switch(numero){

   case 1:

      printf("A continuación, se creara un archivo, para ello se te pedira el nombre y la ubicación  \n \n");

      printf("Introduce el nombre y la ubicación del archivo \n");

   

   break;



   }

   

   return 0;

}

Mi pregunta es ¿Por que si en vez de tener el código como lo tengo, pongo: (scanf("%d", &numero), me dice que le falta un argumento,

¿switch requiere de if?


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: sentencia switch
« Respuesta #1 en: 1 Octubre 2024, 15:22 pm »

¿switch requiere de if?

switch  NO requiere if?

En que parte del codigo tu programa dice "Te falta un argumento"?

el switch evalua lo que esta entre parentesis:

Código
  1. switch(numero){
  2. ...
  3. }

En ese ejemplo estas evaluando la variable numero

Aun que no entiendo muy bien a que te refieres con:

¿Por que si en vez de tener el código como lo tengo, pongo: (scanf("%d", &numero)

Donde pones el scanf? Dentro del switch? asi: ?

Código
  1. switch(scanf("%d", &numero)){
  2. ...
  3. }
  4.  

Si es eso a lo que te refieres, entonces ese switch NO esta evaluando Numero, esta evaluando el resultado de la funcion scanf si miras la documentaion: https://cplusplus.com/reference/cstdio/scanf/

Citar
Return Value
On success, the function returns the number of items of the argument list successfully filled. This count can match the expected number of items or be less (even zero) due to a matching failure, a reading error, or the reach of the end-of-file.

If a reading error happens or the end-of-file is reached while reading, the proper indicator is set (feof or ferror). And, if either happens before any data could be successfully read, EOF is returned.

If an encoding error happens interpreting wide characters, the function sets errno to EILSEQ.

Dice que devuelve la cantidad de items que fueron completamente llenados... a.k.a el numero de variables que realmente recibio desde el teclado.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sentencia Goto en Php , Salto de sentencia en Php
PHP
Graphixx 3 3,924 Último mensaje 24 Mayo 2012, 17:46 pm
por Graphixx
Duda sentencia switch
Programación C/C++
netca 3 2,783 Último mensaje 27 Julio 2012, 05:17 am
por avesudra
problema con sentencia switch
Programación C/C++
++c 2 2,129 Último mensaje 6 Mayo 2014, 00:16 am
por ++c
Sentencia switch vs tablas de búsqueda
Programación C/C++
kutcher 9 3,263 Último mensaje 5 Septiembre 2014, 21:45 pm
por Eternal Idol
[C] Duda sencilla - sentencia Switch
Programación C/C++
n-utz 4 2,185 Último mensaje 31 Mayo 2016, 01:00 am
por n-utz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines