「File」TXT格式解析

在这里插入图片描述

✨博客主页
何曾参静谧的博客
📌文章专栏
「UG/NX」BlockUI集合
📚全部专栏
「UG/NX」NX二次开发「UG/NX」BlockUI集合
「VS」Visual Studio「QT」QT5程序设计
「C/C++」C/C++程序设计「Win」Windows程序设计
「算法」数据结构与算法「File」数据文件格式

术语介绍

TXT(Text)文件格式是一种纯文本文件格式,广泛应用于各种计算机系统和软件中。它以简单的字符序列形式存储数据,不包含任何特定的格式或结构。TXT文件通常使用ASCII编码,每个字符都以其对应的ASCII码值表示。这使得TXT文件具有跨平台和可移植性的特点,因为ASCII编码是一种标准的字符编码方案。
优点:易于创建和编辑,无需特殊软件或工具。您可以使用任何文本编辑器,如记事本、Sublime Text、Visual Studio Code等,来打开和编辑TXT文件。

由于TXT文件没有特定的格式规范,因此它可以包含任何文本内容,例如普通文本、代码片段、配置信息等。以下是一个简单的txtFile.txt文件示例:

这是一个示例文本文件。
它包含多行文本。
每一行都用换行符分隔。

读与写

C语言形式

读文件

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

char* ReadFile(const char* filename) {
    FILE* file = fopen(filename, "r");
    if (file == NULL) {
        printf("无法打开文件:%s\n", filename);
        return NULL;
    }

    // 计算文件大小
    fseek(file, 0, SEEK_END);
    long size = ftell(file);
    fseek(file, 0, SEEK_SET);

    // 分配内存来存储文件内容
    char* buffer = (char*)malloc(size + 1);
    if (buffer == NULL) {
        printf("内存分配失败\n");
        fclose(file);
        return NULL;
    }

    // 读取文件内容
    fread(buffer, sizeof(char), size, file);
    buffer[size] = '\0'; // 添加字符串结尾符

    fclose(file);
    return buffer;
}

写文件

#include <stdio.h>

int WriteFile(const char* filename, const char* content) {
    FILE* file = fopen(filename, "w");
    if (file == NULL) {
        printf("无法创建文件:%s\n", filename);
        return -1;
    }

    fputs(content, file);
    fclose(file);
    return 0;
}

可以参考的文章:C语言文件操作(文件读写)

C++形式

读文件

#include <iostream>
#include <fstream>
#include <string>

std::string ReadFile(const std::string& filename) {
    std::ifstream file(filename);
    if (!file.is_open()) {
        std::cout << "无法打开文件:" << filename << std::endl;
        return "";
    }

    std::string content((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
    file.close();
    return content;
}

写文件

#include <iostream>
#include <fstream>

int WriteFile(const std::string& filename, const std::string& content) {
    std::ofstream file(filename);
    if (!file.is_open()) {
        std::cout << "无法创建文件:" << filename << std::endl;
        return -1;
    }

    file << content;
    file.close();
    return 0;
}

处理大数据写入(分区块)

#include <iostream>
#include <fstream>
#include <string>

#define BUFFER_SIZE 4096

int WriteFile(const std::string& filename, const std::string& content) {
    std::ofstream file(filename);
    if (!file.is_open()) {
        std::cout << "无法创建文件:" << filename << std::endl;
        return -1;
    }

    size_t contentLength = content.length();
    size_t bytesWritten = 0;

    while (bytesWritten < contentLength) {
        // 取当前块的大小
        size_t blockSize = std::min(BUFFER_SIZE, contentLength - bytesWritten);

        // 写入当前块的数据
        file.write(content.data() + bytesWritten, blockSize);

        // 更新已写入的字节数
        bytesWritten += blockSize;
    }

    file.close();
    return 0;
}

可以参考的文章:C++文件操作(2023最新详解)

总结起来,TXT文件是一种简单且纯文本的文件格式,广泛应用于各种计算机系统和软件中。它以ASCII编码存储字符序列,没有特定的格式规范。TXT文件易于创建、编辑和阅读,但不适合存储大量的结构化数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CMake是一个跨平台的开源构建工具,用于管理软件构建过程。CMakeLists.txt是CMake的配置文件,用于描述项目的构建规则和依赖关系。 CMake的解析过程主要包括以下几个步骤: 1. 语法解析:CMake会读取CMakeLists.txt文件,并解析其中的语法。CMakeLists.txt文件由一系列命令和参数组成,用于描述项目的结构和构建规则。 2. 变量定义:CMake支持定义变量来存储各种信息,如源文件列表、编译选项等。通过set命令可以定义变量,并使用${}语法引用变量的值。 3. 构建目标定义:使用add_executable或add_library命令可以定义构建目标,指定目标的名称和源文件列表。add_executable用于生成可执行文件,add_library用于生成静态库或动态库。 4. 依赖关系设置:使用target_link_libraries命令可以设置目标之间的依赖关系。通过该命令可以指定目标所依赖的其他目标,以及需要链接的库文件。 5. 编译选项设置:使用target_compile_options命令可以设置目标的编译选项,如编译器标志、预处理器定义等。 6. 构建配置生成:CMake支持多种构建配置,如Debug、Release等。使用CMake的configure命令可以生成指定配置的构建系统文件,如Makefile或Visual Studio项目文件。 7. 构建系统生成:根据生成的构建系统文件,使用相应的构建工具(如make、ninja、Visual Studio等)进行实际的构建操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何曾参静谧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值