Duda C++, Crear array de dimension N

eR_NaNo

Vale ya lo conseguí, cosa mas ñapa no se puede hacer, xo weno es lo q hay con mis coñocimientos actuales xDDD

#include<stdio.h>
#include<stdlib.h>
void main()
{
int num, n=1;

printf("\nIntroduce un entero:\n");
while (n)
{
n=0;
if(scanf("%d", &num)!=1){n=1; printf("\nERROR: introduce un entero\n");fflush(stdin);}
}
}

Muchas gracias a todos los colaboradores ;)

Riu

#31 en c++ no se utiliza el scanf y printf esos son los operadores de entrada y salida de C. Vuestra profesora tiene idea de programar, pero creo que es algo vagilla, solo con tal brutalidad que has puesto que os a dicho que hagais ya se ve el nivel del profesorado en las huniversidades españolas

dagavi

NaNo un detalle sobre el código que escribes en #30 y #31

Es poco elegante hacer un if de una comparación con verdadero o falso. En C++ tienes las constantes true y false, en C lo estás haciendo con tal == 1, pero en ambos casos queda "feo".

Como puedes intuir hacer eso devuelve un booleano:
tall == 1

Estás diciendo "si tal es 1, devuelve 1, si no 0" como ves "tal" en si mismo ya es 1 o 0

es lo mismo que decir:

tal (si tal es una condición de verdadero o falso)

Así que queda mucho mejor que escribas:

if (scanf() ) y if (!scanf())

que

if (scanf() == 1) o if (scanf() != 1) o if (scanf() == 0)

Más facil de entender:
Si tienes una variable "encontrado" queda mejor escribir:

if (encontrado) .........

que

if (encontrado == 1)

LOc0

#33
Estoy de acuerdo, pero es que scanf() no devuelve un booleano (o pseudo-booleano en C) sino un entero con el número de parámetros que fueron leídos correctamente.

Salu2 ;)

dagavi

También es cierto que C/C++ no interpreta true = 1, si no que interpreta false = 0, y true es != 0 por eso sigue siendo correcto hacer un if (scanf()) xD

maRc

No, porque scanf devuelve EOF si no puede leer. Además, si tratas de leer varios campos pero no se convierten bien todos, también te devuelve un número distinto de cero habiendo fallado.

dagavi

Cierto (lo acabo de probar para ver como se comportaba xD), lo pensé como el equivalente a "cin" en cuyo caso si se jode si no lee algo ya que devuelve un bool (o al menos es donde he podido guardarlo xD)

eR_NaNo

Joder! No pense q esto siguiese activo despues de haber sido resuelta mi duda!! Muchas gracias por todas vuestras aportaciones, sobre lo de las comparaciones en if, es algo q me dijo la maestra, y la verdad con cosas mas evidentes no suelo usarlas, xo al haber sido algo q no estaba acostumbrado a utilizar pues cometes esos errores ;)

Pd.: Veo q ya dos personas han puesto Huniversidad con H y no se si es q yo lo puse en algun lugar ajaja, asi q menos caxondeito, decirme si fui yo y edito xq lo leo y lloro jajaja

LOc0

Pd.: Veo q ya dos personas han puesto Huniversidad con H y no se si es q yo lo puse en algun lugar ajaja, asi q menos caxondeito, decirme si fui yo y edito xq lo leo y lloro jajaja

Yo lo puse de coña.

Salu2 ;)