OP here again, I finally got some time to implement some of the ideas discussed here.  I'm very pleased to say that it all, finally, seems to work.  And no errors or warnings.
Encryption:
# include  <stdio.h>  
# include  <stdlib.h>  
# include  <unistd.h>  
# include  <string.h>  
# include  <math.h>  
#define  arrsize 1802 
int  main () fopen ("/home/USERNAME/keyfile.txt" , "r" );
char  input[arrsize];
puts ("Enter your text as a single line, no paragraphs, max 1800 characters.  Press Enter when finished." );
fgets (input, 1800 , stdin);
    
    size_t  k = strlen (input);
            if  (input[k - 1 ] == '\n' ){
                input[k - 1 ] = '\0' ;
            }
    
    if  (k > 1800 ){
        puts ("Error, message was >1800 characters. Don't be a fag." );
            return  1 ;
    }
        else {
            printf ("\n\nVerifying your text input was length %lu and size %lu...\n" , strlen (input), sizeof for  (int  i=0 ; i<k; i++){
                printf ("%c" , input[i]);
                
            }
        }
    char  key[k];
    printf ("\n\nReading the key.\n" );
        if  (!Keyfile){
        printf ("Error opening keyfile!" );
            return  1 ;
        }
        else {[Expand Post]             fgets (key, k, Keyfile);
        }
        
                printf ("Key array is of length %lu with size of %lu\n\n" , strlen (key), sizeof for  (int  i=0 ; i<k; i++){
                    printf ("%c " , key[i]);
                    
                }
    char  xor [k];
    for  (int  i=0 ; i<k; i++){
        xor [i] = (char ) (input[i] ^ key[i]);
    }
        printf ("\n\nExecuting XOR and storing in xor array of length %lu and size %lu\n\n" , strlen (xor ), sizeof xor ));
        for  (int  i=0 ; i<k; i++){
            printf ("%d " , xor [i]);
        }
FILE *Cipher = fopen ("/home/USERNAME/ciphertext" , "wb" );
    if (!Cipher){
        printf ("Error writing to file!" );
        return  1 ;
    }
    else {
    printf ("\n\nWriting XOR array contents to binary file ciphertext" );
    
        
        fwrite (xor , sizeof xor ), 1 , Cipher);
        
    }
fclose (Keyfile);
fclose (Cipher);
printf ("\n\n" );
return  0 ;
}# include  <stdio.h>  
# include  <stdlib.h>  
# include  <unistd.h>  
# include  <string.h>  
# include  <math.h>  
#define  size 1802 
int  main () fopen ("/home/USERNAME/keyfile.txt" , "r" );
FILE *Cipher = fopen ("/home/USERNAME/ciphertext" , "rb" );
FILE *Plain = fopen ("/home/USERNAME/plaintext.txt" , "w" );
char  ciphertext[size];
if  (!Keyfile){
    printf ("Error opening keyfile" );
    return  1 ;
}
else  if  (!Cipher){
    printf ("Error opening ciphertext!" );
    return  1 ;
}
else  if  (!Plain){
    printf ("Error opening plaintext!" );
    return  1 ;
}
    else {
        printf ("Reading ciphertext into array...\n\n" );
        fread (ciphertext, 1800 , 1 , Cipher);
        }
        
        fseek (Cipher, 0L , SEEK_END);
        size_t  j = ftell (Cipher);
        rewind (Cipher);
                
                puts ("Printing contents of the ciphertext array to verify." );
                for  (int  i=0 ; i<j; i++){
                    
                    printf ("%d " , ciphertext[i]);
                }
        
        char  key[j];
        printf ("\n\nReading the key...\n\n" );
        fgets (key, j, Keyfile);
                
                printf ("Key array is of length %lu with size of %lu\n\n" , strlen (key), sizeof for  (int  i=0 ; i<j; i++){
                    printf ("%c " , key[i]);
                    
                }
    
    char  plain[j];
    for  (int  i=0 ; i<j; i++){
        plain[i] = (char ) (ciphertext[i] ^ key[i]);
    }
        printf ("\n\nExecuting XOR and storing in plaintext array of length %lu and size %lu\n\n" , strlen (plain), sizeof printf ("%s" , plain);
        
    
    puts ("\n\nOutputting plaintext to plaintext.txt" );
    fputs (plain, Plain);
printf ("\n\nAll done." );
fclose (Keyfile);
fclose (Cipher);
fclose (Plain);
return  0 ;
}