简体   繁体   中英

Writing to a text file through the CMD window and a C exe?

I was wondering how I can get this code to overwrite a textfile from it's text value to it's ASCII value.

I want it to do something like this:

CMD > c:\\users\\username\\desktop>cA5.exe content.txt

content.txt has "abc" in it and I want the command line to change the "abc" to it's ASCII values. 97... etc. I don't want anything written in the command window, I want it to change in the text file. Is this possible, if so, how could I do it with this existing code?

#include <stdio.h>
#include <stdlib.h>


int main(int argc[1], char *argv[1])
{

    FILE *fp; // declaring variable 


    fp = fopen(argv[1], "rb");


    if (fp != NULL) // checks the return value from fopen
    {
        int i;
        do
        {
            i = fgetc(fp);     // scans the file 
            printf("%c",i);
            printf(" ");
        }
        while(i!=-1);
        fclose(fp);
    }
    else
    {
        printf("Error.\n");
    }
}

Not the best code but very simple.

#include <stdio.h>
#include <stdlib.h>

void convertToAHex(char *data, long int size, FILE *file){
    rewind(file);

    int i;

    for(i = 0; i < size; ++i){
        fprintf(file, "%d ", data[i]);
    }
}

int main(int argc, char *argv[]){
    if(argc != 2){
        return EXIT_FAILURE;
    }

    FILE *file = fopen(argv[1], "r+");
    if(file){
        char *data;
        long int size;

        fseek(file, 0, SEEK_END);
        size = ftell(file);
        rewind(file);
        data = (char *) calloc(size, sizeof(char));
        if(data){
            fread(data, 1, size, file);
            convertToAHex(data, size, file);
            free(data);
        }
        fclose(file);
    }

    return EXIT_SUCCESS;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM