After doing some reading on FILE data type I decided to practice, I came up with this little program that reads any part of any file:
Code:
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
int main()
{
FILE * file;
char * file_name = new char[255];
int read_from, lenght, file_size;
char * output;
cout << "What file do you want to be read? ";
cin >> file_name;
if(!(file = fopen(file_name, "r+")))
{
cout << "Could not open file.";
return 0;
}
fseek(file, 0, SEEK_END);
file_size = ftell(file);
rewind(file);
cout << "File " << file_name << "(" << file_size << "bytes) sucessfully opened.\n\n";
cout << "Read from offset: ";
cin >> read_from;
fseek(file, read_from, SEEK_SET);
if(read_from > file_size)
{
cout << "Given file does not reach that far!\n";
return 0;
}
cout << "How many bytes to be read? ";
cin >> lenght;
if((read_from + lenght) > file_size)
{
cout << "Given file does not reach that far!\n";
return 0;
}
output = new char[lenght];
for(int x = 0; x < lenght; x++)
{
output[x] = getc(file);
}
cout << "Output: " << output;
return 0;
}
I'd like some suggestions, critics, tips on how to make my code better.