reading the whole line from a file into a variable

Hi,
I am doing :

while read line
do
     printf "%s\n" ${line}
done <datafile.txt

but I am not getting each single line from the data file assigned to the variable line (but only tokens/fields at a time). I also tried

while IFS= read -r line

I want the whole line assigned or read into the variable (and not its tokens/fields at a time) Any suggestions?

Thanks.
OS: Linux 2.6.28-14-generic #47-Ubuntu SMP Sat Jul 25 01:19:55 UTC 2009 x86_64 GNU/Linux
SHELL: GNU bash, version 3.2.48(1)-release (x86_64-pc-linux-gnu)

-sn

change the line:

 
printf "%s\n" "${line}"

That worked. Thanks.
Could we close this thread?
-sn