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 - ecfisa

#31
Hola Eva93.

Aunque me descoloca el uso de iostream y namespace, por el resto de tu código pareciera que estas usando C.

Si es así, en líneas generales, podrías hacer:


#include <stdio.h>
#include <string.h>

void cadenaInv(char cad[],char cadinv[])
{
 int i, len = strlen(cad);

 for(i = 0; i<len; i++)
   cadinv[len-i-1] = cad[i];
 cadinv[len] = '\0';
}


int main()
{
 FILE *input, *output;
 char str[100], inv[100];
 int i = 0;

 if ((input=fopen("input.txt", "rt")) == NULL) {
   perror("No se puede abrir el archivo de lectura\n");
   return 1;
 }

 if ((output=fopen("output.txt", "wt")) == NULL) {
   perror("No se puede abrir el archvio de escritura\n");
   return 1;
 }

 while (!feof(input))
   str[i++] = fgetc(input);
 str[i] = '\0';

 cadenaInv(str, inv);

 i = 0;
 while (inv[i++])
   fputc(inv[i], output);

 fclose(input);
 fclose(output);
}


Saludos :)


EI: juntando mensajes.


Hola de nuevo.

Mirando mejor veo que se me escapó cout... Así que en C++ y suponiendo que en el archivo de texto hay una sola palabra o frase, podría ser:

Código (cpp) [Seleccionar]

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
  ifstream input("input.txt", ios_base::in);
  ofstream output("output.txt", ios_base::out);
  string st;

  getline(input,st);
  input.close();

  st = string(st.rbegin(), st.rend());
  output << st;
  output.close();
}


Saludos :)
#32
Hola Adrian.


Busca por Arboles binarios en C/C++.  Por ejemplo, tal vez te pueda servir este  enlace Arbol binario de busqueda.

Saludos :)
#33
Hola.

Siempre interpreté que las matrices se almacenan del modo que dice amchacon.

Row major order
Ordering of C++ Arrays

Saludos :)
#34
Cita de: feedf en  5 Julio 2013, 05:21 AM
...
ya que estoy pregunto por ejemplo ami me enseñaron a usar printf, pero veo mucha gente q usa cin y cut o veo q vos ahora usaste puts, tienen alguna diferencia?
Hola.

Depende si estas programando en C o C++.

Como C++ está basado en C, el compilador no se quejará si utilizas printf o scanf, etc. Aunque, si estas compilando en C++, es mejor utilizar las funciones proias de él.
La situación no es reversible, no se pueden utilizar funciones propias de C++ tales como cout o cin en C.

Saludos :)
#35
Hola.

Otra forma de encarar tu código es enviando el nombre y la contraseña esperados, ejemplo:


...
int login(const char*, const char*);

int main()
{
  char* nom="pepe",* pass="1234";
  if (!login(nom,pass)) {
    printf("Ha agotado la cantidad de intentos. Presione una tecla para salir.");
    getchar();
    return 1;
  }
  printf("\n\n! Bienvenido %s !",nom);
  getchar();
  return 0;
}

int login(const char* username, const char* userpaswd)
{
  char name[100], pwd[100], ch;
int i , c;

for(i=1; i<=3; i++) {
  printf("Nombre de usuario:");
  scanf("%100s", &name);
    while(getchar()!='\n');

  printf("Contrasena:");
    c = 0;
    do {
      ch = getch();
      printf("*");
      if (ch != '\n' || ch!='\r'){
        pwd[c++] = ch;
      }
    } while(ch != '\n' && ch !='\r' && c < 100);
    pwd[c-1] = '\0';

    if (strcmp(name, username)==0 && strcmp(pwd, userpaswd)==0)
      return 1;
    else
      printf("\n\nNombre de usuario o contrasena invalido (intento %d de 3)\n\n",i);
  }
  return 0;
}



Saludos :)
#36
Hola.


Supongo que dtaBiblioteca2 es un TDataModule y aunque desconozco que componente es ConsultaLibrosSQL, te diría que estás asignando mal el texto de la consulta. Debería ser:

Código (cpp) [Seleccionar]

{
  AnsiString SQLStr = "SELECT * FROM COUNTRY";
  TStrings *TS = new TStringList;

  TS->Text = SQLStr;
  Query->Close();
  Query->SQL->Clear();
  Query->SQL->Assign(TS);
  Query->Open();
}

Pero de tu primer mensaje no divisé a donde apuntaba tu consulta, ahora viendo el uso, no tiene sentido todo ese código previo.  Simplemente hace:

Código (cpp) [Seleccionar]

{
  Query->Close();
  Query->SQL->Text = "SELECT * FROM COUNTRY";
  Query->Open();
}

Con el mismo resultado.

Si la consulta que envias al motor es muy extensa te conviente usar el método Add()  para darle mas legibilidad al código. Es importante en este caso usar previamente el métod Clear(), para eliminar cualquier residuo de la propiedad SQL(de tipo TStrings).

Por ejemplo:
Código (cpp) [Seleccionar]

{
  Query->Close();
  Query->SQL->Clear();
  Query->SQL->Add("UPDATE TABLA SET PRECIO =");
  Query->SQL->Add("CASE OPICION");
  Query->SQL->Add("WHEN 'CASO1' THEN PRECIO * 0.5");
  Query->SQL->Add("WHEN 'CASO2' THEN PRECIO * 0.3");
  Query->SQL->Add("ELSE PRECIO * 0.25 END");
  Query->Open();
}


Saludos :)



#37
Hola.

Si entendí bién tu consulta se puede asignar de forma directa.

Ejemplo:
Código (cpp) [Seleccionar]

...
{
  AnsiString s = "SELECT NOMBRE, APELLIDO FROM PERSONAS";
  TStrings  *TS = new TStringList;

  __try {
    TS->Text = s;
    ShowMessage(TS->Text);
  }
  __finally {
   TS->Free();
  }
}


Saludos :)
#38
Hola.

Básicamente la consulta sería:
Código (sql) [Seleccionar]

SELECT *
FROM TU_TABLA
WHERE NACIMIENTO = :PNACIM


Pero para incorporarla a código C++ Builder, al menos faltaría saber:

  • ¿ Que RDBMS estas usando ?
  • ¿ Que componentes estas usando ?
  • ¿ Que salida esperas del filtrado ?

Saludos. :)
#39
Hola m@o_614.


...
#define MAX_COL  ...
#define MAX_ROW ...

int IsTriangSup(int mat[][MAX_COL])
{
  int f, r, sup = 1;

  for(f = 0; f < MAX_ROW; f++)
    for(r = 0; r < MAX_COL; r++)
      if(f > r && mat[f][r] != 0)
        sup = 0;

  return sup;
}

int main()
{
  int mat[MAX_ROW][MAX_COL];
  ...
  if (IsTriangSup(mat)) {
  ...
}


Saludos :)
#40
Hola KidD.

No conozco Visual C++, pero revisa si te sirve este enlace:  How to copy all items in One listview into another one listview

Saludos. :)