Il problema sorge poichè tra i due cicli for devi incrementare la variabile z di 1.
buff: |_|_|_|_|_|_|_|_|_|_|_|_|
dopo il primo ciclo for facciamo un esempio z = 5, perchè c'è il nome marco
|m|a|r|c|o|_|_|_|_|_|_|_|_|_|
incrementi z di 1 nuovamente => z = 6 e avrai poi nel secondo ciclo for:
|m|a|r|c|o|_|r|o|s|s|i|_|_|_|
prova questo codice non l'ho testato:
void ReadFile(HWND hwnd)
{
char buff[sizeof(buffer) + sizeof(wBuffer)];
char id[sizeof(buffer)], operatore[sizeof(wBuffer)];
file = fopen("id.txt","r");
utenti = fopen("utenti.txt","r");
if(file != NULL && utenti != NULL)
{
while(!feof(file))
{
int z=0;
fread(id, sizeof(buffer), 1, file);
fread(operatore, sizeof(wBuffer), 1, utenti);
for(z;z<sizeof(id);z++)
{
buff[z] = id[z];
}
for(int k=0;k<sizeof(operatore);k++,++z)
{
buff[z] = operatore[k];
}
SendDlgItemMessage(hwnd, IDC_LIST1, LB_ADDSTRING, 0, (LPARAM)buff);
}
}
fclose(file);
fclose(utenti);
}