converting ascii text files is trivial; you have a variety of tools. eg. tr, perl, awk, vi etc.in fact anything that can replace a cr-lf sequence with just a cr. eg.
awk '{ sub("\r$", ""); print }' winfile.txt > unixfile.txt
you could also use a utility called
tofrodos which is available on a number of systems (under different names like "todos", "fromdos", "dos2unix", "unix2dos" etc.)
http://kb.iu.edu/data/acux.html
http://www.thefreecountry.com/tofrodos/
if the files are in unicode, these simple techniques will not work. unicode has a variety of newlines: CR (000D), LF (000A), CRLF (000D,000A), NEL (0085), FF (000C), LS (2028), and PS (2029). for a perl hack see
http://www.onlamp.com/pub/a/onlamp/2...es.html?page=3. it is easy in c++ to write a function that processes input character by character and does the necessary translations.
fread and fwrite are to i/o what memcpy is to memory. it reads or writes bytes into untyped memory (void*) without any formatting or interpretation. the stream should be opened in binary ("b") mode to prevent newline character translations by the underlying layers. for example,
int array[100] ;
// to write an array (binary) into afile
fwrite( array, sizeof(int), 100, file );
// to read the array (binary) from a file
fread( array, sizeof(int), 100, file );
struct some_struct mystruct ;
// write
fwrite( &mystruct, sizeof(struct some_struct), 1, file ) ;
// read
fread( &mystruct, sizeof(struct some_struct), 1, file ) ;
using these functions correctly is difficult; mainly because they do not distinguish between end of file and error. use of feof and ferror is required to determine what has occurred.