elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda fflush
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda fflush  (Leído 2,139 veces)
UnchainedGold40

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Ayuda fflush
« en: 22 Marzo 2015, 22:40 pm »

Hola, tengo una duda con el buffer, estaba haciendo una pila, entonces se me ocurrio poner 2 push, luego 2 pops, luego 2 push y por ultimo 2 pops, pero el ejecutable recibio los 4 push y luego imprimió los 4 pops, me dijeron que era por el buffer, y que tenía que poner fflush(stdout); sin embargo sigue pasando lo mismo :(
Código:
#include <bits/stdc++.h>

using namespace std;

template <typename tipo>
struct pila{
    int numero;
    int tope=0;
    vector<tipo>dato;
    void setSize(int n){
        dato.resize(n);
    }
    void push(){
        if(tope<dato.size()){
            cin >> numero;
            dato[tope]=numero;
            tope++;
        }else{
            throw overflow_error ("Pila llena");
        }
    }
    void pop(){
        if(tope>0){
            tope--;
            cout << dato[tope];
        }else{
            throw underflow_error ("Pila vacia");
        }
    }
};
pila<int>Fila;
int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0);
    Fila.setSize(2);
    Fila.push();
    Fila.push();
    Fila.pop();
    Fila.pop();
    fflush(stdout);
    Fila.push();
    Fila.push();
    Fila.pop();
    Fila.pop();
    return 0;
}


En línea

NOIS

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: Ayuda fflush
« Respuesta #1 en: 23 Marzo 2015, 05:22 am »

Tendrías que vaciar el buffer de entrada, ya que el usuario introduce los datos por teclado, usa fflush(stdin);

Saludos!


En línea

NOIS dev7
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Ayuda fflush
« Respuesta #2 en: 23 Marzo 2015, 12:56 pm »

Tendrías que vaciar el buffer de entrada, ya que el usuario introduce los datos por teclado, usa fflush(stdin);

Saludos!

fflush no se debe usar para vaciar un buffer de entrada. fflush está diseñado para limpiar buffers de salida. En el caso de los buffer de entrada el resultado es indeterminado. Para más información, consulta este otro tema
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda por davor ayuda os ruego ayuda XD (SOLUCIONADO)
Hardware
XxRekcahlExX 6 10,436 Último mensaje 24 Mayo 2010, 00:56 am
por Aprendiz-Oscuro
duda simple (fflush)
Programación C/C++
Fabi0lo 4 3,427 Último mensaje 29 Septiembre 2012, 10:15 am
por Eternal Idol
[src]problema con fflush() « 1 2 »
Programación C/C++
0x3c 18 8,016 Último mensaje 31 Enero 2013, 20:36 pm
por 0x3c
¿Por qué es necesario fflush ()?
Programación C/C++
mester 4 2,613 Último mensaje 9 Octubre 2016, 21:44 pm
por ivancea96
Ayuda con algoritmo recursivo y fflush(stdin)
Programación C/C++
Beginner Web 3 1,677 Último mensaje 5 Julio 2018, 00:10 am
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines