AYUDA Ficheros en C++

Hola es k me han mandado un practica de ficheros de la universidad, pero como no he podido ir a clase no me he enterado de la mitad, mis dudas son:
1) cuando dice k N es el tamaño de la matriz de datos ¿k son las muestras y como sabes el numero?
2) lo de los argumentos de la funcion main tampoco lo entiendo ¿ k tengo k is asignado a cada argv[i] un string segun la opeeracion?
3)cuando dice el programa será invocado de la siguiente forma, a que se refiere con todo eso de audio.exe, etc?
4)¿pueden hacerme el apartado Mono k parece el más facil en C++ para tener un ejemplo y asi hacer yo los otros?
4)por ultimo cuando se declara un fichero de entrada con ifstream cancion("...",ios::in) en "..." el nombre del archivo imporatdo puede variar, entonces como hago para k importe bien archivos con diferente nombre si al nombre del archivo a importar tiene k estar fijo en el codigo fuente?

Espero k me puedan ayudar en algo, muchas gracias por adelantado [ginyo]

Aki asigno la practica:

Adjuntos

http://www.megaupload.com/?d=UWQOOZN9 Aqui te dejo unos apuntillos de ficheros

Hola! pues veras cuando tu invocas a un programa con parametros en la linea de comandos estos se guardan en argv que es un vector de cadenas. El otro elemento es argc que cuenta el numero de elementos que has introducido.
Ejemplo :
./miprograma -c pepe -p sevadepu
argv[0] = miprograma // vease que el primer elemento es el programa en si
argv[1] = -c
argv[2] = pepe

por otro lado argc cuenta el numero de elemtos que serian 5.

otra cosa

cuando dices que puede cambiar ifstream("X",ios::in) , donde la X es el fichero que queremos abrir para escritura , lectura... , pues veras ese archivo puede variar por ejemplo , si nosotros recibimos pepe por consola como te he puesto arriba y pepe es un fichero de texo ( o binario ) , podria tener esto por ejemplo :
string fichero = argv[0] ;
fi.open(fichero.c_str(),ios::in) ;
se que no queda muy claro explicado poraqui pero si te lees los apuntes que te he puesto arriba sale explicado medianamente bien . Bueno un saludo

PD : que practica mas rara xDDD .
gracias zambombas por intentar ayudarme en algo aún me kedan muchas cosas k no se ,pero bueno a ver como las soluciono. [beer] .Y Ferdy, para eso te podias ahorrar el postear, o es por tener un post más en tu contador [carcajad]

Bueno un saludo y si alguien quiere ayudarme con alguna de las preguntas k dije k no se corte jeje.
nos vemos
pepitocabezon escribió:...Y Ferdy, para eso te podias ahorrar el postear, o es por tener un post más en tu contador [carcajad]

Pues no.

Este foro es para debatir cuestiones de Softwre libre, no para enseñarte algo que deberías de haber aprendido en clase. No tiene ninguna obligación de responderte y todo el derecho de ser sarcástico con lo que estas posteando.
Si no eres capaz de hacer esa chorradilla, quizá deberías suspender la asignatura. ¿No crees?
Y es que una cosa es preguntar dudas puntuales sobre programación y otra pretender que te lo den todo hecho... ¬_¬
Vamos a ver no he podido preguntarlo en clase por que estoy enfermo y lo he preguntado aquí porque no he visto un sitio mejor para preguntar sobre el C++. Además yo no he dicho k me hagan la practica solo he pedido 4 "dudas puntuales" si te fijas bien ,lo del apartado de Mono era x si alguien sabia pero ya está. que no se puede preguntar nada [triston]

Adios
No son tan puntuales...

Te explico lo de los argumentos, la función main aunque puedes definirla sin argumentos (con void) normalmente lleva dos parámetros, argc y argv. argc es el número de argumentos, y argv es un vector con los argumentos.

Por ejemplo si el ejecutable de tu programa se llama mcd y lo ejecutas con dos argumentos que son dos números (por ejemplo 20 y 4, o sea que ejecutarías ), entonces
argc=3
argv[0]="mcd"
argv[1]="20"
argv[2]="4"


Pero ojo, los argumentos de argv[x] son todos strings (array de chars), así que si quieres convertir 20 y 4 a formato int tendrás que usar la función atoi:
http://www.cplusplus.com/reference/clib ... dlib/atoi/
No te enfades , de todas formas yo tambien suelo preguntar cosas aqui , pero mas errores y casos puntuales. Mandale tutorias a tus profesores. Yo este año les estoy petando el campus virtual
1) La N se refiere a el número de muestras, y un muestra es cada uno de los valores del WAV que indican como está formado el sonido.

En este caso dice que se trabaja con archivos de 16 bits (2 bytes = short), así que en teoría el array debería tener (Longitud / 2) elementos. Y aunque no diga nada, supongo que debes usar un puntero y new (no recomiendo esto), un std::vector<short>, o leer del archivo cuando lo necesites.

2) Esto ya te lo han explicado antes, simplemente argc contiene los argumentos del modo consola, más el nombre del programa en la posición [0]. Si quieres mirar el primer argumento, haz argv[1], etc.

3) Pues que tienes que ir a la línea de comandos y invocar el programa desde allí, con los argumentos que dicen que ha de aceptar.

4) Esto depende mucho de como hagas el resto del codigo.

5) Lo tienes que cambiar :-| en vez del "..." pon argv[1] o el argumento que te interese.
10 respuestas