write simple data to a file
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*---------------------------------- | |
create a program that creates a file | |
and makes a copy of it. Command line usage: | |
./test <infile> <outfile> | |
-----------------------------------*/ | |
#include <stdio.h> | |
int main(int argc, char* argv[]) | |
{ | |
//------------------------------------// | |
//~*~*~*~*VALIDATE USER INPUTS*~*~*~*~// | |
//------------------------------------// | |
// validate command line arguments | |
if (argc != 3) | |
{ | |
printf("error: proper usage: ./test <infile> <outfile>\n"); | |
return 1; | |
} | |
printf("%s %s %s\n", argv[0], argv[1], argv[2]); | |
// validate infile | |
char* input_file_name = argv[1]; | |
FILE* input_file_pointer = fopen(input_file_name,"r"); | |
if (input_file_pointer == NULL) | |
{ | |
printf("Could not open %s\n", input_file_name); | |
return 2; | |
} | |
//------------------------------------// | |
//~*~*~*~*WRITE TO OUTPUT FILE*~*~*~*~// | |
//------------------------------------// | |
char* output_file_name = argv[2]; | |
FILE* output_file_pointer = fopen(output_file_name, "w"); | |
char c; | |
while(1) | |
{ | |
// we need to break once the null terminator is | |
// collected in our variable which is why we | |
// have our break statement after assigning | |
// our variable c | |
// in other words we don't want to write the last | |
// byte to our outfile | |
c = fgetc(input_file_pointer); | |
if (feof(input_file_pointer)) | |
{ | |
break; | |
} | |
fputc(c, output_file_pointer); | |
printf("%c", c); | |
} | |
printf("\n"); | |
//---------------------------------------// | |
//~*~*~*~*CLOSE OUT FILE POINTERS*~*~*~*~// | |
//---------------------------------------// | |
fclose(input_file_pointer); | |
fclose(output_file_pointer); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment