Home > Blockchain >  Writing file in Tcl gives extra line
Writing file in Tcl gives extra line

Time:11-16

I am wondering from where newline (4th in example code) is written out from following very simple tcl code. Handling from puts -nonewline is cumbersome. Is there any other tcl command influence this behavior?

set fid [open testout.txt w]
puts $fid 1
puts $fid 2
puts $fid 3
close $fid

Output:

#1:1
#2:2
#3:3
#4:

CodePudding user response:

The puts command always appends a newline to the end of what you ask it to write, unless you pass the -nonewline option. It is a feature of that command, and is most of the time what you tend to want. (The puts command is the only standard Tcl command that writes data to a channel; chan puts is just a different name for the same thing.)

In your case, maybe you don't want the newline at the end of the final line (and should use the option). Or maybe you want to trim the newline from the end before splitting the text into lines when reading it back in. Whether you can tolerate that newline character at the end of the text data in the file depends on what you're doing with it.

  • Related