Problem with LIQUIDCRYSTAL LIBRARY print

Hi,
I am working on a project which uses cheap rf link modules to send keypresses from one arduino(mega2560)(4x4 matrix keypad) to another which is UNO and then displaying that on 16x2 LCD Via the LIQUIDCRYSTAL library.

I need to see subsequent keypresses on the screen. Now, I set the cursor to bottom right corner, turn on auto scroll . and print the data.
The probllem is one character gets printed but when the second character prints, the cursor moves to left and the data is printed,also the first printed letter gets deleted.

#include <VirtualWire.h>
#include<LiquidCrystal.h>
const int receiver_pin = 12;

LiquidCrystal lcd(6,7,8,9,10,11);
void setup()
{
   Serial.begin(9600);
   vw_set_rx_pin(receiver_pin);
   vw_setup(2000);
   vw_rx_start();
   lcd.begin(16,2);
}

void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
    lcd.setCursor(15,1);
    
    
    if(vw_get_message(buf, &buflen))
    {
       digitalWrite(13,HIGH);
       
       
     lcd.autoscroll();
for(int i=0;i<buflen;i++)
       {
         Serial.print((char)buf[i]); 
         lcd.print((char)buf[i]);
          delay(100);
       }
       digitalWrite(13,LOW);
       
       
    } 
}

This is the code

My motive is to print the characters one after the other.

Any Help on how this can be fixed?

in the loop you keep putting the cursor back each time round...

    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
    lcd.setCursor(15,1);

You also declare the data ever time round the loop ?

Happy Coding 8) 8)