Diferencia entre revisiones de «Stream.peek()»

De ArduWiki
Saltar a: navegación, buscar
Línea 1: Línea 1:
 
== Descripción ==
 
== Descripción ==
Lee un byte del archivo sin avanzar al siguiente. Es decir, las llamadas sucesivas '''peek()''' devolverán el mismo valor, al igual que la próxima llamada a read().
+
Devuelve el siguiente byte (carácter) del flujo de entrada, sin descartar (flujos byte a byte) o avanzar (flujos por bloques). Es decir, las llamadas sucesivas a '''peek()''' devolverán el mismo carácter, al igual que la próxima llamada a [[Stream.read()]].
 
 
Esta función es parte de la clase '''Stream'' y es invocada por cualquier clase que herede de ella (Wire, Serial, etc.).
 
  
 
== Sintaxis ==
 
== Sintaxis ==
 
<pre>
 
<pre>
 +
objetoStream.peek();
 
</pre>
 
</pre>
  
== Parámetros ==
+
== Retorno ==
 +
El valor recuperado, o -1 si no hay datos para leer ([[int]]).
 +
 
 +
== Advertencias ==
 +
* Si por error no se verifica de antemano si hay datos disponibles, '''peek()''' retornará 255 para [[byte]] en el caso que el valor real sea -1 (nada).
 +
* Cualquier clase que herede de [[Stream]], debe implementar obligatoria y explícitamente esta función. Debe hacerse de manera que cumpla lo descrito en la sección de '''Descripción''' y '''Retorno'''.
  
 
== Ejemplo ==
 
== Ejemplo ==
 +
<syntaxhighlight lang="c++">
 +
void setup(){
 +
  Serial.begin(9600);
 +
}
 +
void loop(){
 +
  if (Serial.available()){
 +
      byte car = Serial.peek();    //Lee caracter enviado y NO borra del buffer.
 +
      Serial.write(car);          //Imprime siempre lo mismo
 +
  }
 +
}
 +
</syntaxhighlight>
  
 
== Vea también ==
 
== Vea también ==

Revisión del 10:07 11 jul 2018

Descripción

Devuelve el siguiente byte (carácter) del flujo de entrada, sin descartar (flujos byte a byte) o avanzar (flujos por bloques). Es decir, las llamadas sucesivas a peek() devolverán el mismo carácter, al igual que la próxima llamada a Stream.read().

Sintaxis

objetoStream.peek();

Retorno

El valor recuperado, o -1 si no hay datos para leer (int).

Advertencias

  • Si por error no se verifica de antemano si hay datos disponibles, peek() retornará 255 para byte en el caso que el valor real sea -1 (nada).
  • Cualquier clase que herede de Stream, debe implementar obligatoria y explícitamente esta función. Debe hacerse de manera que cumpla lo descrito en la sección de Descripción y Retorno.

Ejemplo

void setup(){
   Serial.begin(9600);
}
void loop(){
   if (Serial.available()){
      byte car = Serial.peek();    //Lee caracter enviado y NO borra del buffer.
      Serial.write(car);           //Imprime siempre lo mismo
   }
}

Vea también

Referencias