Como puedo hacer esto en C

Iniciado por andrecid, 24 Junio 2015, 12:01 PM

0 Miembros y 1 Visitante están viendo este tema.

andrecid

Hola me gustaría que me resolviesen esta duda que tengo :

Como puedo hacer que un usuario ingrese varios valores en una sola linea pero que C sepa que los números por espacio vallan en diferentes variables? es decir me explico.

EL programa pide que ingrese una serie de numeros.

Por ejemplo:

2 4 6 8

lo que yo quiero hacer es que C guarde el 2 en variable , 4 en otra variable , 6 en otra variable y 8 en otra variable.

Se puede hacer con scanf? o como se haría

Quiero decir que esto no es un trabajo de mi  colegio ni nada yo mismo estudio en mi casa programación y tenia esa duda, así que por favor no vallan diciendo que no resuelven ejercicios por que solo es una duda ya que llevo 50 lineas de codigo y me entro esta duda. Muchas gracias


Baal_30

Hombre, yo lo que haría sería hacer un split, separando por los espacios, y cada uno en una posición de un array. Ahora, no se si el método split estará en C :P Tampoco se si vale con enteros, pero sino, lo que harías sería capturarlos en un String, y luego un cast a entero.

Que alguien me corrija si me equivoco.
«La suerte es el cuidado de los detalles». -Winston Churchill

Chhristian

#include<stdio.h>

main(){
     int a,b,c,d;
     scanf("%d %d %d %d", &a, &b, &c, &d);
     printf("el valor de a es: %d\n", a);
     printf("el valor de b es: %d\n", b);
     printf("el valor de c es: %d\n", c);
     printf("el valor de d es: %d\n", d);
}

saludos :)

Regexp

Tal como dice Christian:

scanf("%d %d %d %d", &a, &b, &c, &d);

Y eso es todo. También puedes hacerlo con vectores:

int vector[4];
// [...]
scanf("%d %d %d %d", vector, vector+1, vector+2, vector+3);


Saludos
No todo el que deambula está perdido

user-marcos

También los puedes cargar con la ejecución del programa:

Código (cpp) [Seleccionar]

#include <iostream>
#include <cstdlib>
using namespace std;

int main(int n, char* argv[])
{
  int n1 = atoi(argv[1]); //Empezar en 1
  int ..
}