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ú

Temas - ianmorar03

#1
Hola, queria saber por que cada vez que levanto mi programa en c, en la consola cada se ven caracteres extraños. Les explico el programa, quiero hacer una simulacion del COVID-19 como este: https://www.washingtonpost.com/graphics/2020/world/corona-simulator/
Lo estoy haciendo con pthread y demas, pero a la hora de mostrar los puntos en la pantalla, mientras se actualiza la pantalla se van mostrando caracteres extraños.

Este es el codigo que imprime la matriz de simulacion:

void dibujarMapa(struct Mapa* m) {
    for (int i = 0; i < m->filas; i++) {
        for (int j = 0; j < m->columnas; j++) {
            if (m->mapaS[i][j] != 0) {
                move(i , j );
                addch('O');
                refresh();
            }
        }
    }
}


Los primeros segundos, se ve bastante bien, pero al rato comienzan a mostrarse los caracteres extraños, alguien tiene alguna idea por que?
Una imagen que muestra los caracteres que aparecen en mi consola:

#2
Buenas, alguien me podria ayudar con este error, que significa? Busque en la web y revise mi codigo y todo esta bien, no entiendo mucho C, estoy empezando. Estoy programando en Linux, con consola, no se si alguien me pudiera ayudar, el error es el siguiente:

"Segmentation fault (core dumped)"

Estoy implementando una "Cola" (FIFO). El codigo compila sin errores, pero a la hora de ejecutarlo me muestra ese mensaje. Encontre que el problema esta en la funcion "enqueue", pero no se como solucionarlo, aqui la funcion:


void enqueue(int p, bool t){
   struct Nodo *temp;
   temp=malloc(sizeof(struct Nodo));
   temp->carro->placa = p;
   temp->carro->tipo = t;
   temp->sig=NULL;
   if (head == NULL){
       head = temp;
       tail = temp;
   }
   else{
       tail->sig = temp;
       tail = temp;
   }
}


Si alguien me pudiera ayudar seria genial.
Gracias de antemano.
#3
Programación C/C++ / C++ Ficheros - Busqueda
16 Octubre 2018, 22:04 PM
Hola gente!
Tengo una duda, hago un proyecto sobre ingresar letras (A/B/C/D/E/F/.../Z/) que estan escritas en un .txt y las quiero meter en una lista, pero no se como hacer para leer cada caracter e ignorar los '/'.
PD: en el .txt tambien existen las letras "RR","CH".
Alguien tiene alguna idea de como se hace el metodo?
#4
Programación C/C++ / C++ PUNTEROS a clases POO
6 Septiembre 2018, 10:10 AM
Tengo un problema a la hora de hacer un programa:
Digamos que quiero insertar objetos dentro de una colección, y en el main, quiero hacer una copia de un objeto a otro, a la hora de cambiar los atributos del nuevo objeto(copia), se cambian los de la original, doy un ejemplo:
Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;
class persona{
private:
   string nom;
   string id;
public:
   persona(){
       nom=" ";
       id=" ";
   }
   persona(string n,string i){
       nom = n;
       id=i;
   }
   string getNom(){
       return nom;
   }
   string getId(){
       return id;
   }
   void setNom(string n){
       nom=n;
   }
   void setId(string i){
       id=i;
   }
   ~persona(){
       nom=" ";
       id=" ";
   }
};
class coleccion{
private:
   persona **p;
   int cantidad;
public:
   coleccion(){
       p=new persona*[10];
       cantidad=0;
   }
   void ingresarPersona(persona *pe){
       p[cantidad]=pe;
       cantidad++;
   }
   persona devuelve(int i){
       return *p[i];
   }
   ~coleccion(){
       for(int i=0;i<cantidad;i++){
           delete persona[i];
       }
       delete[] persona;
   }

};

int main(){
   coleccion *c = new coleccion;
   persona *p1 = new persona("JUAN","12345");
   persona *p2 =new persona("PEDRO","45678");

   c->ingresarPersona(p1);
   c->ingresarPersona(p2);

   cout<<c->devuelve(0).getNom()<<endl; //muestra por pantalla "JUAN"
   cout<<c->devuelve(1).getNom()<<endl; //muestra por pantalla "PEDRO"

   persona *p3; //hago una tercera persona
   *p3 = c->devuelve(0); //le asigno los valores de la p1 a la p3
   c->insertarPersona(*p3);

   cout<<c->devuelve(2).getNom()<<endl; //muestra por pantalla "JUAN"

   c->devuelve(2).setNom("CAMBIO");

   //se supone que solo cambia el nombre de p3
   //pero cambia tambien el valor de p1

   cout<<c->devuelve(0).getNom()<<endl; //muestra por pantalla "CAMBIO"


   system("PAUSE");
   return 0;
};




Cuando yo hago una copia del puntero, al cambiar los valores de la copia, cambian los de la original, como puedo solucionar este problema?
Espero me hayan entendido :D
#5
Programación C/C++ / [C++] Hacer un backspace
23 Septiembre 2017, 23:20 PM
Hola!
Estoy haciendo un codigo que me imprima un char 'O' y quiero que en la consola se mueva hacia la derecha EN LA MISMA LINEA DE LA CONSOLA Si me entienden?

Si hago un backspace al ultimo caracter lo hace!
como hago un Backspace??

#6
Si tengo 8 numeros y quiero saber cual de ellos es el mayor como hago?
Que debo hacer?
ejemplo
3,8,2,6,1,7,9,4
quiero que me devuelva el 9.
#7
Programación C/C++ / [C++] Ayuda con Vectores
12 Septiembre 2017, 23:51 PM
Hola! Estoy empezando con vectores y quiero saber que metodo debo utilizar para saber hasta que posicion del vector esta siendo ocupado. Explico mejor:

[a] [a] [a] [a] [ ] [ ] [ ]
0    1   2    3   4   5   6

En ese vector hasta la posicion 3 esta siendo ultizado, quiero saber como hago para que me muestre por pantalla los primeros 4 valores, Y TAMBIEN me muestre los ultimos 3 que no se utilizan.

Espero que me puedan ayudar gracias :D
#8
Estoy haciendo un programa que me lea un fichero, pero si el fichero viene asi:

hola mundo
esta es otra linea

Lo que me muestra en pantalla es solo "hola mundo", quisiera saber como hago para leer la otra linea y mostrarla por pantalla.
Aqui dejo mi codigo.
Código (cpp) [Seleccionar]

string ficheroAbrir;
string leer;
cout << "Inserte el nombre del fichero que quiera abrir > ";
getline(cin, ficheroAbrir);
ficheroAbrir = "ficheros/" + ficheroAbrir + ".txt";
ifstream archivo;
archivo.open(ficheroAbrir.c_str());
getline(archivo, leer);
cout << "Linea leida" << leer;
archivo.close();


les agradeceria su ayuda y muchas gracias  ;D
#9
Programación C/C++ / Codificador [C++]
7 Agosto 2017, 08:02 AM
Buenas!
Vengo otra vez a molestar como siempre jaja, he estado haciendo un pequeño programa en C++ que me codifique una palabra, lo estoy haciendo con vectores, un vector para el alfabeto y otro para la clave, ejemplo:

vector del alfabeto:
A B C D E...
0 1 2 3 4...

vector para la clave:
! 2 6 & $...
0 1 2 3 4...

Pero a la hora de codificar no se como hacer el método que haga la tarea, dejo un ejemplo:

palabra a codificar:
C A E
0 1 2

resultado:
6 ! $
0 1 2
ocupo que me imprima la palabra codificada, si serian tan amables de explicarme solo el metodo para codificar ;D

#10
Hola de nuevo!
Tengo un problema que quiero resolver. Quiero leer un fichero, con ifstream, y getline, lo que pasa es que no puedo leer una linea especifica, se puede hacer eso?

Intente con If pero no me sale :( quisiera que por favor me ayudaran!

Aqui dejo el codigo
Código (cpp) [Seleccionar]

#include <iostream>
#include <fstream>


using namespace std;


int main(){
string leeArchivo;
char respuesta1;
char respuesta2;

ifstream file("ejemplo.txt");
getline(file, leeArchivo);
if(leeArchivo == "puede volar?"){
cout<<leeArchivo<<endl;
}
cin>>respuesta1;
if(respuesta1 == 'n'){
while(getline(file, leeArchivo)){
if(leeArchivo == "puede ladrar?"){
cout<<leeArchivo<<endl;
}
}
cin>>respuesta2;
if(respuesta2 == 'n'){
while(getline(file, leeArchivo)){
if(leeArchivo == "gato"){
cout<<leeArchivo<<endl;
}
}
}
if(respuesta2 == 's'){
getline(file, leeArchivo);
if(leeArchivo == "perro"){
cout<<leeArchivo<<endl;
}

}
}
else{
getline(file, leeArchivo);
if(leeArchivo == "pajaro"){
cout<<leeArchivo<<endl;
}
}

file.close();
return 0;
}

No se si el codigo esta bien, si por favor me pudieran ayudar seria genial!
#11
Hola de nuevo!
Estaba haciendome un codigo y queria hacer una barra de chars que cambien de color, pero lo que quiero es que en una linea YA escrita, borre especificamente esa linea para luego escribir otra cosa.
Aca el codigo:

int main(int argc, char *argv[]) {
char space=' ';
char bola='o';
char equis='x';
int bolita;
int cont;
for(cont=0;cont<1000;cont++){
for(bolita=0;bolita<15;bolita++){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14);
cout<<space;
cout<<bola;
Sleep(50);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
cout<<space;
cout<<equis;
Sleep(50);
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
}
return 0;
}



el output seria algo asi como:


Código (div) [Seleccionar]

o x o x o x o x o x o x o x o x o x o x o x o x o x o x


cuando la linea 1 termine quiero que se borre, como lo hago?


Si me podrian ayudar seria lo mejor  :D
#12
HOLA! vengo como siempre a molestar, espero esten muy bien, tengo una duda...
estuve leyendo y encontre que se le puede cambiar el color a los cout, con la funcion de "textcolor(//color)"
Mi problema es que no me cambia el color y me tira error de que textcolor no esta definida(Puse la libreria conio.h)


int main(){
    textcolor(4);
    cout<<"Esta linea deberia estar en rojo..."<<endl;
    return 0;
}
#13
Programación C/C++ / [AYUDA] piramide en c++?
18 Abril 2016, 21:34 PM
Hola! quisiera saber como hacer una piramide en c++?
pidiendo en un char la letra o lo que quiera (en este caso un asterisco'*') y en otra pidiendo la dimension; por ejemplo si es 7 seria algo asi como:
*
**
***
****
*****
******
*******

Sin hacer uso de for, unicamente con while y sin las librerias de c(conio.h y stdio.h)
#14
Programación C/C++ / Base de datos c++
17 Abril 2016, 10:17 AM
Como puedo hacer una base de datos? con la funcion "struct", sin hacer uso de las librerias para c (stdio.h y conio.h) tengo las bases de datos pero ocupo que me imprima todo en un archivo de texto.

#include <iostream>

int main(){

struct datos{
int numero;
string nombre;
};

int cuantos;
cout<<"Cuantas personas quiere?";
cin>>cuantos;

datos *data=new datos[cuantos];

for(int i;i<cuantos;i++){
cout<<"Digite su numero de cedula:"<<i;
cin>>data[i].numero;
cout<<"Digite su nombre:"<<i;
cin>>data[i].nombre;
}
for(int i=0 ; i<cuantos; i++){
cout<<"----------------------------------------------------------------------"<<endl;
cout<<"Nombre: "<<data[i].nombre;
cout<<"Cedula: "<<data[i].numero;
}
}



Si digito 2o mas en la cantidad de cuantas personas, quiero que me imprima en un archivo de texto todas las personas que digite, no se como hacerlo, si me pudieran ayudar seria genial.
#15
Programación C/C++ / Cuadrado en c++
14 Abril 2016, 00:33 AM
Hola gente.
Quiero hacer un cuadrado en c++
tengo este codigo

int numero=5;
char letra;
cin>>letra;
while(numero>0){
    cout>>letra;
    numero=numero+1;
}


Necesito que me imprima para abajo la misma cantidad de numeros, se que se hace con un salto de linea pero no se como.
Con while y no con for
Se les agradece la ayuda, muchas gracias.
#16
Hola necesito reiniciar un programa, sin salir del cmd en c++, que empiece a hacer el proceso otra vez, pero al poner lo que tengo me tira como si fuera un return 0 y no tengo ninguno, aca el codigo.

int main() {
int a,b,suma;
b=1;
cin>>a;
suma=a+b;
cout<<suma;
cout<<"Quiere volver a ejecutar el programa?\n\n1. si\n2. no\n\n";
       cin>>x;
int x=1;
if(x==1){
system("CLS");
}
}
#17
Programación C/C++ / Reloj c++
31 Marzo 2016, 20:32 PM
Hola gente, de nuevo vengo a molestar, estoy haciendo un codigo de un reloj, tengo el codigo completo del reloj, lo que quiero ahora, es que el usuario digite cuantas horas, minutos y segundos quiere adelantar el reloj, y cuantas quiere atrasar, lo que pasa es que al adelantar muchos minutos y segundos cambia las horas o los minutos.
Si me pudieran ayudar, como puedo hacer para que no sume mas de la cuenta (que las horas no pasen de 24, que los minutos de 60 y segundos de 60)
Estoy empezando y no se como hacer :-(
Aca el codigo:

class Reloj{
private:
int horas, minutos, segundos, horasxa, minutosxa, segundosxa, horasxat, minutosxat, segundosxat;

};
int main(){
Reloj reloj1;
reloj1.setHoras(8);
reloj1.setMinutos(30);
reloj1.setSegundos(15);
}
#18
Hola de nuevo, vengo a molestar otra vez, en un codigo de c++, tengo que guardar un correo electronico y su clave, y tengo que identificar el dominio(gmail.com, yahoo.com..ect)

como puedo hacer para que me identifique el dominio? es con modulo? o como?
#19
Hola, tengo una pregunta...como hace uno para guardar un numero en una variable de una clase en  un cin en el main? no se si me explico pero en el codigo de abajo, lo que quiero es que me guarde el valor de un tipo de cliente(el tipo de cliente se dirige por numero 1 y 2)
En el "cin" quiero que el usuario ponga el valor, pero me tira error, me podrian ayudar por favor, y se los agradeceria
:(

#include<iostream>

using namespace std;
class ClienteNube {
private:
float tipocliente, costobase;


public:
ClienteNube(){

tipocliente=0.00;

}
~ClienteNube(){

}
ClienteNube(float tc){

tipocliente=tc;

}

void setTipocliente(float tc){
tipocliente=tc;
}

float getTipocliente(){
return (tipocliente);
}

void costoBase(){
if( (tipocliente=1) ){
costobase = (0.140*720);
}
if((tipocliente=2) ){
costobase = (0.158*720);
}
if((tipocliente=1) ){
costobase = (0.063*720);
}
if((tipocliente=2) ){
costobase = (0.072*720);
}
if((tipocliente=1) ){
costobase = (0.029*720);
}
if((tipocliente=2) ){
costobase = (0.038*720);
}
}


};

int main (int argc, char *argv[]) {

ClienteNube cle1;
cle1.tipoCliente();
cin>> cle1.setTipocliente;



return 0;
}

#20
Necesito terminar un código, necesito terminar un código de un reloj, el problema es que tiene clase, y métodos de set y get. El código tiene que tener en el main el objeto y  Hasta ahorita llevo este código, necesito ayuda, si me pudieran ayudar. Estoy aprendiendo a programar.


#include<iostream>
using namespace std;
class Reloj{
private:
int horas, minutos, segundos, escribe24, escribe12, avanza, atrasa;

public:
Reloj (){
horas=0;
minutos=0;
segundos=0;
escribe24=0;
escribe12=0;
avanza=0;
atrasa=0;
cout<<"La hora es: "<<endl;
}
~Reloj(){

}
Reloj(int h, int m, int s, int e24, int e12, int atr, int ava){
horas=h;
minutos=m;
segundos=s;
escribe24=e24;
escribe12=e12;
atrasa=atr;
avanza=ava;
}

void setHoras(int h){
horas=h;
}
void setMinutos(int m){
minutos=m;
}
void setSegundos(int s){
segundos=s;
}
void setEscribe24(int e24){
escribe24=e24;
}
void setEscribe12(int e12){
escribe12=e12;
}
void setAvanza(int h, int m, int s){
avanza=horas + 4, minutos + 20, segundos + 35;
}
void setAtrasa(int h, int m, int s){
atrasa=horas - 4, minutos - 20, segundos + 35;
}

int getHoras(){
return (horas);
}
int getMinutos(){
return (minutos);
}
int getSegundos(){
return (segundos);
}
int getEscribe24(){
return (escribe24);
}
int getEscribe12(){
return (escribe12);
}
int getAvanza(){
return (avanza);
}
int getAtrasa(){
return (atrasa);
}

}
//string toString(){
// stringstream p1;
// p1<<"\horas: "<<horas<<endl
// <<"minutos: "<<minutos<<endl
// <<"segundos: "<<segundos<<endl
// <<"escribe en 24: "<<escribe24<<endl
// <<"escribe en 12: "<<escribe12<<endl
// <<"avanza: "<<avanza<<endl
// <<"atrasa: "<<atrasa<<endl;
// return p1.str();
//}
};

int main (int argc, char *argv[]) {



return 0;

}