【问题标题】:Writing to a text file through the CMD window and a C exe?通过 CMD 窗口和 C exe 写入文本文件?
【发布时间】:2012-12-06 00:48:09
【问题描述】:

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

我希望它做这样的事情:

CMD > c:\users\username\desktop>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");
    }
}

【问题讨论】:

  • 你在问如何写入文件吗?
  • 是的,我将如何用它的 ASCII 值覆盖任何现有文本。
  • 你尝试了什么?你有什么问题?
  • 您在过去几分钟内提出的两个问题都是非常基本的 c。这是作业吗?如果是这样,您真的应该更加努力地为自己解决问题;这样你会学到更多。
  • 不,这不是家庭作业。只是我想弄清楚如何做事。 Youtube 和其他论坛问题并没有真正帮助我理解它,所以我来到这里。我只是想学 C :p

标签: c file text cmd


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 2018-05-12
    相关资源
    最近更新 更多