Autor
|
Tema: Lectura opcional de una serie de variables (Leído 2,432 veces)
|
amgarciac
Desconectado
Mensajes: 19
|
Buenos días, estoy intentando realizar un problema que me lea una secuencia de términos (monomios de grado 1), dentro de los cuales he de identificar el coeficiente y la variable (una letra). A cada uno de estos he dedicado una variable, respectivamente un integer y un "char".
Dado que bien el coeficiente sea uno (por lo que sobra su inserción como dato de entrada) o no exista variable (por lo que damos con un término independiente), he establecido unos enunciados condicionales a la hora de establecer las sentencias de entrada de datos (todas en base a un cin): un if para que me lea ambos y otros dos para cada uno de ellos. Pero tengo un problema, ya que no me respeta ni los espacios ni los saltos de línea; incluso es imposible continuar ya que se da una infinitud de saltos de línea, incontrolables.
De todos modos, antes de finalizar os expondré un ejemplo de entrada y otro de salida:
ENTRADA -13t 8k w +34 -10p SALIDA -13.t 8.k 1.w 34. -10.p
Agradecería vuestra ayuda. Un saludo.
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Acuérdate de poner el código para que podamos revisarlo. Sobre eso, CIN lee hasta que haya un espacio o un salto de línea. Si quieres que CIN lea espacios, escribe en su lugar cin.getline(variable,numero de caracteres);
|
|
|
En línea
|
|
|
|
amgarciac
Desconectado
Mensajes: 19
|
Hola, le agradezco su respuesta, pero voy a proceder a exponerle el código y a explicarle posteriormente, ya que ando un poco desconcertado: int main(void) { int coeficiente = 0; char variable;
while (cin >> coeficiente >> variable) { if (coeficiente == '\0') cout << 1 << "." << variable; else if (variable == '\0') cout << coeficiente << "."; else cout << coeficiente << "." << variable;
cout << endl; } } Como pueden ver, el código ampara el caso en el que se lee el número, sea positivo o negativo junto a la variable (una letra de la 'a' a la 'z'), pero yo quiero que se lea el número en los siguientes casos: - Términos con variable, todos los coeficientes aparecen explícitamente y son nºs positivos. Dos términos consecutivos se separan por un único carácter "enter"’
- Términos de todo tipo, sean positivos o negativos; separados por un único carácter enter
- Estos términos también pueden ir separados por espacios además de los enters; de manera arbitraria
Dada la complejidad (que haya un signo sin nº), ... no sé si utilizar int o char, o solo un string; o emplear un determinado procedimiento. VÉASE EL ENUNCIADO EN https://docs.google.com/file/d/0B70hcRCqJ3n6Y3ludEowbThHVlk/edit?usp=sharing
|
|
« Última modificación: 14 Septiembre 2013, 15:30 pm por amgarciac »
|
En línea
|
|
|
|
Alien-Z
Desconectado
Mensajes: 177
C++ Programmer
|
El error está en que, al leer los datos de esta manera, haces que obligatoriamente primero se lea un número y luego un carácter: cin >> coeficiente >> variable
Por tanto no se puede introducir el coeficiente o la incógnita sola. Deberías almacenarlo todo como carácteres (incluído el coeficiente) y después analizar si se ha introducido un signo, un número o una letra. Saludos.
|
|
|
En línea
|
|
|
|
amgarciac
Desconectado
Mensajes: 19
|
Buenas, al final lo hice como me sugeriste: haciendo uso de un string.
Muchas gracias por su respuesta. Un saludo.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
foto lectura, y lectura veloz, scanning y otros metodos de lectura rapida....
Foro Libre
|
Kase
|
3
|
12,972
|
4 Febrero 2014, 08:47 am
por camilo_
|
|
|
El argumento no es opcional
Programación Visual Basic
|
johndoe90
|
1
|
2,477
|
14 Mayo 2009, 15:43 pm
por XcryptOR
|
|
|
Sobre la lectura de variables...
Programación C/C++
|
amchacon
|
5
|
2,435
|
11 Marzo 2014, 02:38 am
por Yoel Alejandro
|
|
|
Vuelta al principio: la publicidad de uTorrent pasa a ser opcional otra vez
Noticias
|
wolfbcn
|
3
|
1,365
|
29 Junio 2014, 22:10 pm
por engel lex
|
|
|
Una actualización opcional de Windows evita que tu ratón inalámbrico sea ...
Noticias
|
wolfbcn
|
0
|
1,235
|
14 Abril 2016, 18:21 pm
por wolfbcn
|
|