Antes de utilizar la macro EOF debes incluir el encabezado <cstdio>.
Un saludo
Un saludo
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
string in = "mipagina.net";
string cmd = "echo ping " + in;
// ...
system(cmd.c_str());
Cita de: wiD^ en 26 Agosto 2014, 20:26 PMY si quiero pasar un arreglo de registros?No entiendo la pregunta ya que eso es lo que estas haciendo en tu programa:
int main()
{
registro clientes[200];
int i;
SetearReg(&clientes, &i);
}
#include <iostream>
using std::cin;
struct punto {
int x;
int y;
};
void leer_punto(punto& p);
// ...
int main()
{
punto p;
leer_punto(p);
// ...
return 0;
}
void leer_punto(punto& p)
{
cin >> p.x;
cin >> p.y;
}
/*Escribo el archivo*/
printf("Introduzca nombre: ");
gets(persona.nombre);
fprintf(fichero,"%s",persona.nombre);
printf("Introduzca ciudad: ");
gets(persona.ciudad);
fprintf(fichero,"%s",persona.ciudad);
printf("Introduzca edad: ");
scanf("%d",&persona.edad);
fprintf(fichero,"%d",persona.edad);
fclose(fichero);
/*Escribo el archivo*/
printf("Introduzca nombre: ");
gets(persona.nombre);
fprintf(fichero, "%s\n", persona.nombre);
printf("Introduzca ciudad: ");
gets(persona.ciudad);
fprintf(fichero, "%s\n", persona.ciudad);
printf("Introduzca edad: ");
scanf("%d", &persona.edad);
fprintf(fichero, "%d\n", persona.edad);
fclose (fichero);
fscanf(fichero,"%d",&persona.edad);
puts(persona.edad);
while (fgets(persona.nombre, 40, fichero) != NULL){
printf("%s", persona.nombre);
fgets(persona.ciudad, 40, fichero);
printf("%s", persona.ciudad);
fscanf(fichero,"%d",&persona.edad);
printf("%d\n", persona.edad);
{
int ch;
while ((ch = fgetc(fichero)) != EOF && ch != '\n')
;
}
}
fclose(fichero);
Cita de: kutcher en 23 Agosto 2014, 02:53 AMquisiera saber algún método para detectar un posible desbordamiento de enteros al realizar una multiplicación de dos variables de tipo unsigned para asi almacenar con seguridad el resultado en otraa * b > MAX ==> a > MAX / b, b > MAX / a
int a;
unsigned b;
a = -1;
b = 0;
printf("%d < %u ? %s\n", a, b, a < b ? "Si" : "No"); /* -1 < 0 ? No */
Cita de: chicainge en 20 Agosto 2014, 00:26 AMtengo un problemiya al leer los datos, pongo el nombre y se acaba el programa porque pasa esto?Porque, como ya te comento ivancea96, el campo nombre debe ser de tipo string, no char. Mismo caso con los campos laboratorio y proveedor.
Cita de: chicainge en 20 Agosto 2014, 00:26 AMy otra cosa, el getline es como se introduce una cadena en el string?El operador ">>" se utiliza para leer y almacenar una palabra en un string, cuando se desea leer una linea de texto se utiliza getline. Esa función la debes utilizar para asegurarte de leer los campos mencionados completos.
cout << "NOMBRE: ";
getline(cin, p[0].nombre);
cout << "CODIGO: ";
cin >> p[0].codigo;
cout << "PRECIO: ";
cin >> p[0].precio;
cin.get();
cout << "DESCRIPCION: ";
getline(cin, p[0].descripcion);
cout << "LABORATORIO: ";
getline(cin, p[0].laboratorio);
cout << "PROVEEDOR: ";
getline(cin, p[0].proveedor);
cout << "FECHA DE CADUCIDAD(INTRODUCIR DIAMESAÑO): ";
cin >> p[0].fechacaducidad;
int suma=0;
int valor=0;
int numeroValores=0;
for (valor; valor != 9999;numeroValores+= 1){
cout <<"Escriba el valor: ";
cin >> valor;
if (valor==9999){
numeroValores--;
continue;
}else {
suma+=valor;
}
}
int suma = 0;
int valor;
int numeroValores = 0;
while (true){
cout << "Escriba el valor: ";
cin >> valor;
if (valor == 9999)
break;
suma += valor;
numeroValores++;
}