c - 通过 CMD 窗口和 C exe 写入文本文件?

标签 c file text cmd

我想知道如何让这段代码将文本文件从文本值覆盖为 ASCII 值。

我希望它做这样的事情:

CMD > c:\users\用户名\桌面>cA5.exe content.txt

content.txt 中有“abc”,我希望命令行将“abc”更改为其 ASCII 值。 97...等等。我不想在命令窗口中写入任何内容,我希望它在文本文件中进行更改。这可能吗?如果可以,我该如何使用现有代码来做到这一点?

#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");
    }
}

最佳答案

不是最好的代码,但非常简单。

#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;
}

关于c - 通过 CMD 窗口和 C exe 写入文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13735190/

相关文章:

html - 如何放大此文本的垂直区域并减去其水平区域?

c - 如何在 C 中正确比较和打印出此数组中的匹配元素?

c - 为什么这个更快?提交 1 与提交 2

c - FreeRTOS 任务不是上下文切换

ios - 添加解析框架防止 pch 文件预编译

c++ - 计算搜索比较 C++

javascript - 如何在javascript中制作类似文本变化效果的矩阵?

text - 我怎样才能像这两个网址一样在博客上创建或上传纯文本文件?

java - 在 Java 中读取和写入 .txt 文件

C - 我对文件的写入丢失了