Ayuda con codigo en C (no me ejecuta un for y necesito ayuda)

Iniciado por Søra, 21 Mayo 2010, 22:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Søra

Ola a todos no me suelo pasar mucho por este subforo pero ahora con tanto tiempo libre pues e me ha ocurrido ponerme a programar en C asi pues estoy haciendo un codigo para un servidor de wow una especie de launcher que te permita poner una lista de realmlist ordenados para ir cambiando entre ellos cuando alguno no este on.

Bueno que me enrollo demasiado espero que lo hayais entendido, bueno aqui les dejo mi codigo:

#include <stdio.h>
main()
{

printf(" _       _         _       _     ______         _               _     _ \n");
printf("(_)  _  (_)       (_)  _  (_)   (______)       (_) _           (_)   (_)\n");
printf("(_) (_) (_)  ___  (_) (_) (_)   (_)__    _   _  _ (_)__  _   _ (__)_ (_)\n");
printf("(_) (_) (_) (___) (_) (_) (_)   (____)  (_)_(_)(_)(____)(_) (_)(_)(_)(_)\n");
printf("(_)_(_)_(_)(_)_(_)(_)_(_)_(_)   (_)____   (_)  (_)(_)   (_)_(_)(_)  (__)\n");
printf(" (__) (__)  (___)  (__) (__)    (______)(_) (_)(_)(_)    (___) (_)   (_)\n");


printf("----------------------------------------------------------\n");
printf("Configurando WoW-ExiruN-Launcher\n");
printf("----------------------------------------------------------\n");

int a,i;

printf("W-E-L te permite crear una lista de realmlist alternativos\n");
printf("de manera que si tu servidor favorito esta off pasara\n");
printf("a los siguientes servidores que hallas indicado\n");
printf("----------------------------------------------------------\n");
printf("Indica el numero de realmlist que quieres poner\n");
scanf("%i", &a);
printf("Introduce los realmlist\n");

    for(i=0; i++; i<a) {
      char realmlist[30];
      fgets (realmlist,30,stdin);
      FILE *df;
      df = fopen ("Realmlist.wtf","r+b");
      fprintf(df,"%s",realmlist);
      fclose(df); }

}


la cosa es que no me ejecuta el for por lo que no puedo guardar los realmlist y no funciona mi programa.

Y despues de todo esto deciros que no he encontrado ninguna manera de borrar archivos o reescribirlos en C lo cual frena mi programa.

Saludos Søra.





Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.


Søra

Conozco el funcionamiento del for XD pero gracias.

Lo que pasa es que ya lo he usado antes y tengo otros codigos mios que funcionan para comparar pero sin embargo me funcionan en los otros codigos y ene ste no.... o.O


Saludos Søra.





Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.

Horricreu

#3
No me creo que sepas abrir ficheros en C/C++ y que no sepas utilizar un for() :o Como dijo ctlon, mírate esto o coge un buen libro y lee. Mientras tanto te aviso que el bucle for() se utiliza de la siguiente manera:

Código (cpp) [Seleccionar]
for(inicialización; condición; incremento) {}

Saludos :P

EDITO:

Cita de: Søra en 21 Mayo 2010, 22:52 PM
Conozco el funcionamiento del for XD pero gracias.

Lo que pasa es que ya lo he usado antes y tengo otros codigos mios que funcionan para comparar pero sin embargo me funcionan en los otros codigos y ene ste no.... o.O


Saludos Søra.

No me lo creo. Es imposible que te haya funcionado en otros códigos... enséñanoslos.

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Søra

#4
Tienes razon eso lo ponia en la wiki y cuando lo he leido lo he cambiado y me da un fallo de segmentacion asi que como me daba fallo pues ya no os he dicho que lo habia cambiado ya que no sabia que el orden fuera imprescindible  '-.- Gracias pero ahora me da esto:

Citar~/Escritorio/C$ ./a.out
_          _               _       _     ______            _                      _     _
(_)   _    (_)          (_)  _  (_)   (______)         (_) _                (_)   (_)
(_)  (_)  (_)  ___   (_) (_) (_)   (_)__    _   _  _     (_)__  _   _ (__)_ (_)
(_)  (_)  (_) (___)  (_) (_) (_)   (____)  (_)_(_)(_)(____)(_) (_)(_)(_)(_)
(_)_(_)_(_)(_)_(_) (_)_(_)_(_)   (_)____   (_)  (_)(_)    (_)_(_)(_)  (__)
(__) (__)    (___)   (__) (__)    (______)(_) (_)(_)(_)    (___) (_)   (_)
----------------------------------------------------------
Configurando WoW-ExiruN-Launcher
----------------------------------------------------------
W-E-L te permite crear una lista de realmlist alternativos
de manera que si tu servidor favorito esta off pasara
a los siguientes servidores que hallas indicado
----------------------------------------------------------
Indica el numero de realmlist que quieres poner
2
Introduce los realmlist
Fallo de segmentación

Saludos Søra.





Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.

Littlehorse

An expert is a man who has made all the mistakes which can be made, in a very narrow field.

bizco

Citar
    "r"   Open a file for reading. The file must exist.
    "w"   Create an empty file for writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file.
    "a"   Append to a file. Writing operations append data at the end of the file. The file is created if it does not exist.
    "r+"   Open a file for update both reading and writing. The file must exist.
    "w+"   Create an empty file for both reading and writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file.
    "a+"   Open a file for reading and appending. All writing operations are performed at the end of the file, protecting the previous content to be overwritten. You can reposition (fseek, rewind) the internal pointer to anywhere in the file for reading, but writing operations will move it back to the end of file. The file is created if it does not exist.


Søra

#7
Pues es igualito al anterior pero con el orden de los condicionantes del for cambiados:

#include <stdio.h>
main()
{
printf(" _       _         _       _     ______         _               _     _ \n");
printf("(_)  _  (_)       (_)  _  (_)   (______)       (_) _           (_)   (_)\n");
printf("(_) (_) (_)  ___  (_) (_) (_)   (_)__    _   _  _ (_)__  _   _ (__)_ (_)\n");
printf("(_) (_) (_) (___) (_) (_) (_)   (____)  (_)_(_)(_)(____)(_) (_)(_)(_)(_)\n");
printf("(_)_(_)_(_)(_)_(_)(_)_(_)_(_)   (_)____   (_)  (_)(_)   (_)_(_)(_)  (__)\n");
printf(" (__) (__)  (___)  (__) (__)    (______)(_) (_)(_)(_)    (___) (_)   (_)\n");


printf("----------------------------------------------------------\n");
printf("Configurando WoW-ExiruN-Launcher\n");
printf("----------------------------------------------------------\n");

int a,i;

printf("W-E-L te permite crear una lista de realmlist alternativos\n");
printf("de manera que si tu servidor favorito esta off pasara\n");
printf("a los siguientes servidores que hallas indicado\n");
printf("----------------------------------------------------------\n");
printf("Indica el numero de realmlist que quieres poner\n");
scanf("%i", &a);
printf("Introduce los realmlist\n");

   for(i=0; i<a; i++) {
     char realmlist[30];
     fgets (realmlist,30,stdin);
     FILE *df;
     df = fopen ("Realmlist.wtf","a");
     fprintf(df,"%s",realmlist);
     fclose(df); }

}


Saludos Søra.

edito: Solucionada la primera parte tal y como a publicado ctlon habia copiado la manera de abrir archivos de un codigo que habia creado anteriormente por no repasar y ay estaba el fallo pero ahora al poner que quiero meter dos realmlist solo me deja meter uno no se por que quizas por el espacio ????

Citar~/Escritorio/C$ ./a.out
_       _         _       _     ______         _               _     _
(_)  _  (_)       (_)  _  (_)   (______)       (_) _           (_)   (_)
(_) (_) (_)  ___  (_) (_) (_)   (_)__    _   _  _ (_)__  _   _ (__)_ (_)
(_) (_) (_) (___) (_) (_) (_)   (____)  (_)_(_)(_)(____)(_) (_)(_)(_)(_)
(_)_(_)_(_)(_)_(_)(_)_(_)_(_)   (_)____   (_)  (_)(_)   (_)_(_)(_)  (__)
(__) (__)  (___)  (__) (__)    (______)(_) (_)(_)(_)    (___) (_)   (_)
----------------------------------------------------------
Configurando WoW-ExiruN-Launcher
----------------------------------------------------------
W-E-L te permite crear una lista de realmlist alternativos
de manera que si tu servidor favorito esta off pasara
a los siguientes servidores que hallas indicado
----------------------------------------------------------
Indica el numero de realmlist que quieres poner
2
Introduce los realmlist
set realmlist exirun.servegame.com

Saludos Søra.





Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.

Littlehorse

#8
char realmlist[30];
FILE *df=fopen ("Realmlist.wtf","w"); //O "a".
for(i=0;i<a;i++)
{
fgets (realmlist,30,stdin);
fprintf(df,"%s",realmlist);
}
fclose(df);


Edit: "set realmlist exirun.servegame.com" son 34 caracteres, tu cadena tiene 30. El contenido restante queda en el buffer de entrada y es leído en la próxima lectura.

An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Horricreu

#9
Quizás es esto:

Código (cpp) [Seleccionar]
df = fopen ("Realmlist.wtf","a");

¿Cómo vas a abrir un fichero con extensión .wtf :laugh: :xD? ¿No será un .doc o .txt? Porque poner .wtf me entra la risa... :laugh:

Saludos :P

EDITO: ¡he estado buscando y, existe la extensión .wtf! :laugh: Perdona es que ya sabes: what the fuck :xD

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.