1.

Solve : C++ - Problem with File I/O?

Answer»

Hi all.

Please take a look at this code:

Code: [Select]int main(int argc, char *argv[])
{
//reads an ASCII file containing a list of numbers and writes a binary file containing the same list.

string buffer;
ifstream input_file, bin_input_file;
ofstream output_file, bin_output_file;
input_file.open("Textdoc.txt");
output_file.open("copied.bin", ios::out | ios::binary);

GETLINE(input_file, buffer, '\0'); //ASCII file read into buffer



char buffer_array[buffer.length()], buffer_array_2[buffer.length()]; //Create an array big enough to store content of buffer

cout << buffer_array << endl << endl;

system("PAUSE");
return EXIT_SUCCESS;
}
The content of Textdoc.txt is: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 24 27 30 33 36 39 40 41 42 43 44 45 46 47 48 49 50 60

The last line, cout << buffer_array << endl << endl; prints the following to the screen: 20 21 24 27 30 33 36 39 40 41 42 43 44 45 46 47 48 49 50 60 P3"

Questions:
1 - How come PART of the content of buffer is automatically copied into buffer_array without an explicit command for the program to do so?

2 - Assuming for some reason, that it is supposed to copy the content of buffer automatically into buffer_array, why does it start at 20? Why doesn't it copy the entire content of buffer?

I'd be extremely grateful for any help whatsoever in understanding this seemingly strange behaviour . Thanks.



Discussion

No Comment Found