Diferencia entre revisiones de «Stream.peek()»
De ArduWiki
Línea 1: | Línea 1: | ||
== Descripción == | == 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 == | == Sintaxis == | ||
<pre> | <pre> | ||
+ | objetoStream.peek(); | ||
</pre> | </pre> | ||
− | == | + | == 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 14: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
}
}