te puedo decir, no obstante que tus scanf estan mal planteados no es lo mismo adquierir un caracter que una cadena y en cualqueir caso no has reservado espacio para las cadenas preguntaras , ehhh como seria eso ? simple para caracteres usa fgetc, para cadenas fgets bye
<Josh> y bueno hermano,tu hermana q me dijo q estaba cansada de tenerle el orto como la bandera de japon y bueno la pobre me quizo hacer un masaje prostatico nada mas pero era tanto su recelo y venganza acumulada q se esmero un poco mas de lo normal,pero bue,estuivo bien amorizado por la de dias horas años y lagrimas q echo la pobre de tanto culearla
no textclip, option , que diga command.
Shark0 hermano estas leyendo una cadena en un unico caracter ... que esta mal de eso? que tenes que leer un caracter en un caracter o leer una cadena en una cadena.
Que sabes de cadenas en C ? dice el manual de scanf sobre la opcion %s: " Concuerda con una secuencia de caracteres distintos de blancos; el siguiente puntero debe serlo a char, y el vector debe ser lo suficientemente grande como para aceptar toda la secuencia y el caracter 0 a NUL final. El analisis de la cadena de entrada acaba en el siguiente espacio blanco o cuando se llega a la anchura de campo maxima, lo que ocurra antes".
<Josh> y bueno hermano,tu hermana q me dijo q estaba cansada de tenerle el orto como la bandera de japon y bueno la pobre me quizo hacer un masaje prostatico nada mas pero era tanto su recelo y venganza acumulada q se esmero un poco mas de lo normal,pero bue,estuivo bien amorizado por la de dias horas años y lagrimas q echo la pobre de tanto culearla
...... tema cerrado desde mi persona

Edito : Mi amor ... tenga o no problema con vos afuera es problema afuera , esto es un foro y mis peleas adentro las dejo a un lado , si alguien que no quiero tiene una duda igual lo ayudare , Afuera es afuera , El foro es el foro , asi que tus inconvenientes resuelvelos por pm si lo quieres si no trata de no hacer esos comentarios y listo . Aca se viene ayudar y aprender y uno dice hasta cuando ayudar o no ;) , pero te doy un consejo , te recomiendo que leas un poco mas sobre cadenas y arrays , en introduccion a c , y despues si postea las dudas , lo que yo te di fueron sugerencias para tu programita , mas que nada consejos , para que si lo quieres ir viendo lo veas saludos ! paz y amor !
Última edición por ps1c0s1s el 09 Mar 2010, 14:04, editado 1 vez en total.
<Josh> y bueno hermano,tu hermana q me dijo q estaba cansada de tenerle el orto como la bandera de japon y bueno la pobre me quizo hacer un masaje prostatico nada mas pero era tanto su recelo y venganza acumulada q se esmero un poco mas de lo normal,pero bue,estuivo bien amorizado por la de dias horas años y lagrimas q echo la pobre de tanto culearla
Lo veo todo bien y ordenado, nomas la funcion getchar(); al final es inservible xD solo esta estorbando, y pues podrias usar un switch, para estos casos en lo personal se me hace mas comodo, por que asi puedes manejar los errores del programa mas facil, por ejemplo si algun tonto pone como entrada en vez de alguna de las letras que estan ahí pone "hola" el programa fallara encambio con un switch, podrias poner un case default, o en tu caso ponerle un else a los ifs, para tener un control sobre los errores... por ejemplo en tu caso sería algo como esto:

Código: Seleccionar todo

   while(1)
   {
       win=GetForegroundWindow();
      printf("\n|-> Insert the command to execute : ");
       scanf("%s", &command);

       if(command=='o')
      {
         if (OpenClipboard(win)!=0)
         {
             printf("\n   The clipboard's text is : %s\n", GetClipboardData(CF_TEXT));
             CloseClipboard();
         }   
      }
      else
      {
        if(command=='s')
        {
           if (OpenClipboard(win)!=0)
           {
              printf("\n   Insert the text to set to the clipboard : ");
              scanf("%s", textclip);
              SetClipboardData(CF_TEXT, (HANDLE)textclip);
              CloseClipboard();
           }
         }
         else
         {
           if(command=='e')
           {
             if (OpenClipboard(win)!=0)
             {
               EmptyClipboard();
               printf("%s","\n   The clipboard now is empty!\n");
               CloseClipboard();
             }
           }
           else
           {
               printf("Error, no escriba estupideces...");
           }
         }
      }
   }
como vez es algo tedioso usar tantos else, por eso mejor un switch, con un default, salu2
//mHmm..
shark0 escribió:Si linkgl, yo antes de publicar el code he probado todas las posibilidades.. el switch creo recordar que me daba error de constante no se que.. yo lo ponía así :

switch(command)
{
case 's':
{
Code..
}
break;
}

Pero me daba error en los cases.. por eso decidí ponerle if's ya que me arte..
Pues si haha porque esa no es la estructura de switch, un switch es asi:

switch(command)
{
case 's':
//codigo
break;
}

osea que tu code quedaria asi:

Código: Seleccionar todo

while(1)
   {
       win=GetForegroundWindow();
      printf("\n|-> Insert the command to execute : ");
       scanf("%s", &command);

       switch(command)
       {
         case 'o':
           if (OpenClipboard(win)!=0)
           {
             printf("\n   The clipboard's text is : %s\n", GetClipboardData(CF_TEXT));
             CloseClipboard();
           }
           break;
         case 's':   
           if (OpenClipboard(win)!=0)
           {
             printf("\n   Insert the text to set to the clipboard : ");
             scanf("%s", textclip);
             SetClipboardData(CF_TEXT, (HANDLE)textclip);
             CloseClipboard();
           }
           break;
        case 'e':
          if (OpenClipboard(win)!=0)
          {
            EmptyClipboard();
            printf("%s","\n   The clipboard now is empty!\n");
            CloseClipboard();
          }
          break;
        default:
          printf("Error, no escriba estupideces!");
          break;
       }
   }


--edito

Sobre lo que dice ps1c0s1s, bueno fgetc creo que es para trabajar con ficheros ps1c0, pero podrias usar getchar(); para obtener solo un caracter shark0, dejame probar y te cuento
Última edición por linkgl el 09 Mar 2010, 18:41, editado 1 vez en total.
//mHmm..
Sobre lo que dice ps1c0s1s, bueno fgetc creo que es para trabajar con ficheros ps1c0, pero podrias usar getchar(); para obtener solo un caracter shark0, dejame probar y te cuento
Como estas loca linkg espero que mejor !!!!! getchar() es equivalente a getc(stdin).Por lo tanto es estupido acordarse siquiera de que esa funcion existe y normalmente no es ni una funcion sino una macro ah, y ahh getc() es equivalente a fgetc() excepto en el hecho de que puede estar implementado como una macro que evalue flujo mas de una vez, por tanto se usa fgetc y no getc
<Josh> y bueno hermano,tu hermana q me dijo q estaba cansada de tenerle el orto como la bandera de japon y bueno la pobre me quizo hacer un masaje prostatico nada mas pero era tanto su recelo y venganza acumulada q se esmero un poco mas de lo normal,pero bue,estuivo bien amorizado por la de dias horas años y lagrimas q echo la pobre de tanto culearla
pero si intentas con fgetc o getc, te marcara un error en la conversion de tipo char a tipo FILE, porque según se esas funciones solo pueden trabajar con punteros tipo FILE.
//mHmm..
Una pregunta desde el aprendizaje, que diferrencia a estos que mencionais y getche();
La felicidad es una cualidad evasiva. Si la buscas, no la encuentras.
Imagen
depuniet escribió:Una pregunta desde el aprendizaje, que diferrencia a estos que mencionais y getche();
que getche(); como te dije por msn, se limita a obtener un caracter e imprimirlo en pantalla directamente, y las demas funciones, como scanf te permite leer desde caracter hasta enteros, definiendolo con la inicial antes de "%", y fgetc o fgets se utiliza para obtener cadenas de ficheros tipo FILE
//mHmm..
Responder

Volver a “Fuentes”