Why doesn't Serial.read() read multiple character? I used multiple of Serial.read() and Serial.parseInt() to get characters and a number ( like "xy123" ) on an Arduino UNO.
Then I checked the result on Serial monitor.

Unfortunately I couldn't get the character with second Serial.read().

Here's the code:

void setup(){
    Serial.begin(9600);
}

void loop(){  
  if (Serial.available() &gt;0) {

    // I want to reacive the characters like "xy123"
    char input1 = Serial.read();
    char input2 = Serial.read();
    int value = Serial.parseInt();

    Serial.println(input1); // ok
    Serial.println(input2); // * no good * (-1)
    Serial.println(value);  // ok

    // Writing some codes with input1 ,input2 and value ...        
  }
// I don't want to use delay(). 
}


How do I get the second character?

Thanks.
if (Serial.available() &gt;0) {


This is like saying "I won't go into that room until there is at least one dog in there".  Someone tells you there is a dog there. You go into the room and say "Hey, why aren't there two dogs there?".

If you want to read two bytes one approach is to wait until they are available:

  if (Serial.available() &gt;= 2) {