Without actually seeing the script I can only guess, but I think you lose your one byte somewhere when reading the file line by line.
Also I'd be careful with the -c option of wc. It counts bytes, not characters. Multibyte characters may cause your script to fail:
wc -c is not ignoring or missing the \ backslash character.
wc -c just counts the number of bytes that it sees.
If your byte count is too small, it's because some sequence such as \n or \t is getting changed to one byte BEFORE wc -c sees it. Here is an example showing one way this can happen. There are doubtless other ways:
$ echo "\t" # First \, then t, then newline
\t
$ echo "\t" | wc -c
3
Most likely what you are seeing as \e (or backslash whatever) when you view the file is not a backslash at all - it's your shell command or editor displaying an unprintable character (which is indeed 1 byte long).
Try using man od (posix) on the file to see what the actual character is.
Amrutha24, if you would like prompt and accurate assistance, do yourself a favor and post the exact commands that you are using. It is ridiculous that this thread has grown to two pages, that you have posted in it multiple times, and that you still have yet to share your code.
If you're using read , you're using it incorrectly. However, due to your inadequate posts, that is only a guess.