Menú

Mostrar Mensajes

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ú

Mensajes - naderST

#31
Del estándar de C++ tienes la clase list. Aquí te dejo un ejemplo:

Código (cpp) [Seleccionar]

#include <iostream>
#include <list>

std::list<int> lista;

int main() {
    for(int i=1;i<=10;++i)
        lista.push_back(i);
    for(std::list<int>::iterator it = lista.begin();it != lista.end();++it)
        std::cout << *it << std::endl;
    return 0;
}


Documentación: http://www.cplusplus.com/reference/list/list/
#32
Advertencia - mientras estabas escribiendo, fueron publicadas 3 respuestas. Probablemente desees revisar tu mensaje.
Ejemplo sencillo:

archivo1.cpp
Código (cpp) [Seleccionar]

#include <iostream>

struct Objeto {
   int a,b,c,d;
} Objeto[5000];

int main() {
   cout << "Hello world!" << endl;
   return 0;
}


archivo2.cpp
Código (cpp) [Seleccionar]

extern struct Objeto {
   int a,b,c,d;
} Objeto[5000];

void funcion() {
   // ...
}
#33
Debes especificar únicamente las columnas, pero en tu caso debes utilizar un apuntador y pasarle a la función el número de columnas de tu matriz dinámica ya que necesitas saber sí o sí el número de columnas ya que al final tu matriz en memoria no es más que un arreglo, es decir, digamos que tienes el siguiente arreglo en memoria:

1 2 3 4 5 6

Puedes verlo como varias matrices:

2x3
1 2 3
4 5 6

3x2
1 2
3 4
5 6

6x1
1
2
3
4
5
6

Todo depende de cómo la quieras tratar.
#34
Declara el arreglo en el otro cpp usando el modificador extern de la siguiente manera y no debería darte problemas.

extern struct Objecto Objeto[5000];
#35
Revisa la documentación que hace referencia a fgets() si no me equivoco esto es lo que estás buscando.
#36
while(!feof(archivo))
    {
        fscanf(archivo,"%[^|]|%[^|]|%[^\n]\n",&nombre[k],&apellido[k],&matricula[k]);
        k=k+1;
    }

    for(i=0; i<k; i++)
    {
        fscanf(archivo,"%[^|]|%[^|]|%[^\n]\n",&nombre,&apellido,&matricula);
    }


1. Antes de leer los registros debes hacer rewind(archivo) para posicionarte al inicio del archivo.

2.  fscanf(archivo,"%[^|]|%[^|]|%[^\n]\n",&nombre,&apellido,&matricula); como te mencioné en el otro post solo te almacena en el primer elemento del arreglo, debes hacer lo siguiente: fscanf(archivo,"%[^|]|%[^|]|%[^\n]\n",nombre[k],apellido[k],matricula[k]);
#37
http://www.cplusplus.com/reference/cstdio/ftell/ La función ftell te permite obtener la posición actual en el archivo, entonces antes de leer una linea haces ftell y lo vas almacenando en un arreglo.

En el fscaf tienes un detalle ya que tu tienes declarado un arreglo de strings y todos los registros los estás almacenando en el primer elemento de dicho arreglo, deberías llevar un contador y leer así:

nombre[contador]
#38
Tal cual, usas strlen para obtener el número de caracteres de la cadena.
#39
Usa arreglos y argumenta tu solución (sobran argumentos)
#40
Usando un conjunto de bits lo podrías hacer, pero no puedes usar un número mayor que 64