首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )

文章目录 一、逐行遍历文件文本数据 1、获取文件中的文本行 2、查询文本行数据 3、追加文件数据 4、使用占位符方式拼接字符串 二、完整代码示例 一、逐行遍历文件文本数据 ---- 1、获取文件中的文本行...键 Key ; 如果本行不包含 Key , 将数据行 line_buffer , 追加拷贝到 file_buffer 数组中 ; 如果 Key 关键字 在本行 , 则使用新的数据替换原来的数据 , 最后拷贝到...key); // 本行不包含 Key , 将数据行 line_buffer // 追加拷贝到 file_buffer 数组中 if (p == NULL)...中 ; // 本行不包含 Key , 将数据行 line_buffer // 追加拷贝到 file_buffer 数组中 if (p == NULL)...调用 sprintf 可以使用占位符方式拼接字符串 , 这里将键值对按照 "%s = %s\n" 形式 , 拼接成字符串 , 然后将拼接后的字符串追加到另外一个数组中 ; //

1.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Shell实用工具

    cut命令逐行读入文本,然后按列划分字段并进行提取、输出等操作。...小结 cut的作用 一个强大文本处理工具,它可以将文本按列进行划分的文本处理。cut命令逐行读入文本,然后按列划分字段并进行提取、输出等操作。...演示9: 删除不匹配的行 删除不匹配 itheima 或 itcast 的行 sed '/itheima\|itcast/!...演示2: 第一行删除后粘贴到最后1行 将模式空间第一行复制到暂存空间(覆盖方式)并删除, 最后将暂存空间的内容复制到模式空间中的最后一行(追加方式) sed '1{h;d};$G' sed.txt #...截取某个文件中的列, 重点是按照列分割, 这个命令不适合截取文件中有多个空白字符的字段 sed: 增删改查数据. sed用于在文件中以行来截取数据进行增删改查 awk:截取分析数据.

    7.9K10

    LINUX运维常用命令详解一

    1到3的字段  16、sort 、uniq、wc     sort:文本排序,仅仅是对显示文件的排序,而不影响源文件的顺序,是根据ASSII码     的字符升序来排列的。        ...    sed:流编辑器,把文本中的某一行读取到内存中进行处理,此内存空间称为模式空间。...默认不编辑原文件,只对模式空间内的数据进行处理,处理结束后,将没模式空间打印至屏幕    sed 'AddressCommand'  file...         ...fg:sed '/^\//d' /etc/fastb 删除以/开头的行      sed '/^\//p' /etc/fastb 显示以/开通的行         a \string:在指定的行后追加新的行...etc/inittab 或者 sed  -r 's/^#[[:space:]]+//g' /etc/inittab         6、删除某文件中以空白字符后面跟#类的行中的开头的空白字符及#

    90320

    什么是SQL注入攻击?

    例如验证用户是否存在的SQL语句为:用户名’and pswd='密码 如果在用户名字段中输入:'or 1=1 或是在密码字段中输入:'or 1=1 将绕过验证,但这种手段只对只对Statement有效,...如果开发人员不细心的话,用户数据就有可能被解释成命令,这样的话,远程用户就不仅能向Web应用输入数据,而且还可以在数据库上执行任意命令了。 SQL注入式攻击的主要形式有两种。...二是一种间接的攻击方法,它将恶意代码注入要在表中存储或者作为原书据存储的字符串。在存储的字符串中会连接到一个动态的SQL命令中,以执行一些恶意的SQL代码。...注入过程的工作方式是提前终止文本字符串,然后追加一个新的命令。如以直接注入式攻击为例。就是在用户输入变量的时候,先用一个分号结束当前的语句。然后再插入一个恶意SQL语句即可。...由于插入的命令可能在执行前追加其他字符串,因此攻击者常常用注释标记“-”来终止注入的字符串。执行时,系统会认为此后语句位注释,故后续的文本将被忽略,不背编译与执行。 4 如何防范SQL注入?

    13710

    【Python 入门第十九讲】文件处理

    每行代码都包含一个字符序列,它们形成一个文本文件。文件的每一行都以一个特殊字符结尾,称为 EOL 或行尾字符,如逗号{,} 或换行符。它结束当前行,并告诉解释器新行已经开始。...灵活性:Python 中的文件处理非常灵活,因为它允许您处理不同的文件类型(例如文本文件、二进制文件、CSV 文件等),并对文件执行不同的操作(例如读取、写入、追加等)。...Python 中文件处理的缺点容易出错:Python 中的文件处理操作容易出错,尤其是在代码编写不仔细或文件系统存在问题(例如文件权限、文件锁定等)的情况下。...Python 添加数据如果要将更多数据添加到已创建的文件中,则访问模式应为“a”,即追加模式,如果我们选择“w”模式,则现有文本将被新数据覆盖。...这很有帮助,因为使用这种方法,任何打开的文件都会在完成后自动关闭,因此会自动清理。实现文件处理中的所有功能在这个例子中,我们将介绍上面看到的所有概念。

    15110

    linux实战(一)

    -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。...处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。...d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p :列印,亦即将某个选择的数据印出。...第二条语句的意思是,当到达最后一行后,G命令取出保持缓冲区的行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中的行的末尾。在这个例子中就是追加到最后一行。...input-file(s) 是待处理的文件。 在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。

    2.2K10

    第五章 正则表达式&字符处理

    命令 功能:给系统中存在的用户发送邮件。...---查找文档中的指定字符,替换成新字符 sed 's/data/&123/g' f1 ---查找文档中的指定字符,在其后追加字符 sed -n '/data/p' f1 ---显示包含指定字符的行...具体sed的其他命令和参数可见下面几个表格: 命令 功能 a\ 在当前行后面加入一行或者文本 b label 分支到脚本中带有标号的地方,如果标号不存在就分支到脚本的末尾 c\ 用新文本改变或者替代本行的文本...d 从模式空间中制删除指定行 D 删除模式空间中第一行 i\ 在当前行上面插入文本 h 拷贝模式空间到内存缓冲区 H 追加模式空间内容到内存缓冲区 g 获得内存缓冲区的内容,并替代当前模式空间中的文本...G 获得内存缓冲区的内容,并追加当前模式空间中的文本 命令 功能 l 列表不能打印所指定的字符清单 n 读取下一个输入行,用下一个命令处理新的行 N 追加下一个输入行到模式空间后面并在二者之间嵌入一个新的行

    2.1K20

    Linux Shell工具篇 - 内容处理工具sed

    、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。...-f 后跟保存了sed指令的文件。 -n 取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行。...2.8 删除匹配行及其后面一行 删除匹配itheima行及其后面一行 sed '/itheima/,+1d' sed.txt 运行效果 2.9 删除不匹配的行 删除不匹配 itheima 或 itcast...sed -n 's/itheima/hello/2p ' sed.txt > sed2.txt 运行效果 3.7 正则表达式匹配替换 匹配有 i 的行,替换匹配行中 t 后的所有内容为空字符串:...(追加方式) 运行效果 6.2 第一行删除后粘贴到最后一行 将模式空间第一行复制到暂存空间(覆盖方式)并删除,最后将暂存空间的内容复制到模式空间中的最后一行(追加方式) sed '1{h;d};$G

    1.5K20

    Linux常用命令(二)

    联线用户命令 查看联线用户 who finger w 查看联线到系统中的用户 # who 查看联线到系统的用户及详细个人信息信息 # finger 查看用户占用系统资源的情况 # w 与联线用户通信...\n" 输出结束后不换行 # echo -n "please enter your name: " 接收用户输入 read 参数: a:将输入的文本存入数组中,默认分隔符为空格或制表符 d:指定结束符...,默认结束符为换行符 e:从标准输入读取,使用readline库获取输入,此时用户可以使用退格键、方向键进行行编辑操作 n:指定读取的字符数 p:指定字符串输出到标准错误并读取输入 r:将读取到的字符串按字段放到不同的变量中...s:先锁住屏幕,再从标准输入中读取字符 t:在指定时间内没有输入就结束读取状态 u:从指定的文件描述符中读取 显示并保存文本 tee 如: # ifconfig eth2 | tee eth2_info...参数: a:以追加的形式将数据写到文件尾 i:写入数据时不写入标准错误 邮件 mail 发送邮件 # mail [option] [-s subject] [-c c_address] [-b b_address

    65320

    MySQL创建数据库和创建数据表

    用于从数据表中插入、修改、删除数据。 3. 数据查询语言 DQL(Data Query Language) 。用于从数据表中查询数据。 4....最初,都是使用 root 用户登录,工作中如果一直用 root 用户登录,因为权限太大,风险是很大的,所以等创建好权限适合的用户后,就不要经常登录 root 用户了。 2....添加后,刚才的表中多了一个字段,新增成功。 5. 删除表的字段 使用 alter table 表名 drop 字段名; 删除一个表中已存在的字段。...删除字段后,表中不再有该字段。 6. 修改字段的数据类型 使用 alter table 表名 modify 字段名 数据类型; 修改表中现有字段的数据类型。...字符串类型 数据类型 字节范围 用途 CHAR(n) 0 -- 255字节 定长字符串 VARCHAR(n) 0 -- 65535字节 变长字符串 TEXT 0 -- 65535字节 长文本数据 LONGTEXT

    19.9K42

    Linux三剑客(grep、sed、awk)

    匹配任意单个字符 表示任意一个字符 * 字符* 匹配0或多个此字符 表示重复的任意多个字符 \ 屏蔽一个元字符的特殊含义 表示去掉有意义的元字符的含义 [] 匹配中括号内的字符 表示过滤括号内的字符...--color=auto 对匹配到的文本着色显示 -v 显示不被pattern匹配到的行 -i 忽略字符大小写 -n 显示匹配的行号 -c 统计匹配的行数 -o 仅显示匹配到的字符串 -q 静默模式,不输出任何信息...处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。...,追加到默认输出之后 a [\]text1 在指定行后面追加文本,支持使用\n实现多行追加 i [\]text 在行前面插入文本 c [\]text 替换行为单行或多行文本 w /path/somefile...保存模式匹配的行至指定文件 r /path/somefile 读取指定文件的文本至模式空间中匹配到的行后 = 为模式空间中的行打印行号 !

    2.1K11

    通过示例学 Golang 2020 中文版【翻译完成】

    在切片中查找和删除 在数组中查找和删除 打印数组或切片元素 声明/初始化/创建数组或切片 将数组/切片转换为 JSON 追加或添加到切片或数组 结构切片 映射切片 通道的切片或数组 布尔值的切片或数组...漂亮地打印结构变量 结构的导出和未导出字段 结构中的匿名字段 检查两个结构是否相等或结构相等性 访问和设置结构字段 嵌套结构 结构字段元数据或标记 结构与 JSON 的转换 如何初始化带有另一个嵌套结构的结构...in Golang 字符串的所有排列 交换字符串的字符 交换两个字符串 反转一个字符串 查找并删除字符串中的字符 查找并删除子字符串 通过索引删除字符串 创建字符串的计数/重复副本 不区分大小写的字符串比较...在的单链表中删除正数第k个节点 在单链表中删除倒数第k个节点 反转双向链表 相加两个由链表表示的数字 反转链表 反转给定链表的k组中的节点 交换链表中节点对 将排序的链表转换为平衡的 BST 动态规划...正则表达式的连接 正则表达式的交替 匹配全字符串 理解插入符号和美元字符 匹配字符串的前缀或后缀 不区分大小写的正则表达式匹配 匹配原始或字面值字符串 理解点.字符 替换所有匹配正则表达式的字符串 向后引用

    6.2K50

    LinuxShell命令sed

    简介 sed 是 Linux系统自带的流式编辑器(流式编辑器是指处理处理输入流或文本流中的数据),不同于普通的交互式文本编辑器(比如 vim),sed 编辑器根据命令来处理数据流中的数据。...使用两个单引号时,script 中使用 / 分隔每个字段,字段均为纯字符串,不能使用 Shell 下的变量;使用两个双引号时,script 中使用 | 分隔每个字段,字段中可以使用 Shell 下的变量...a\ text :在指定行后追加内容为 text 的新行。 i\ text :在指定行前追加内容为 text 的新行。 r\ file :从 file 文件中读取内容并追加到模式空间匹配到的行后。...d :清空模式空间中的数据。 D :删除模式空间中的第一行(包括换行符)。 h :复制模式空间到保存空间。 H :追加模式空间到保存空间。 g :复制保存空间到模式空间。...举例 打印 XXX 文件中第 5 行及其后的所有行: sed -n '5,$p' XXX 将 XXX 文件数据中的第 2 行删除后写入 YYY 文件: sed -n '2d; w YYY' XXX 将

    1.1K30

    6-数据类型与常见约束

    数据类型 整型 # 常见数据类型 /* 数值型: 整型 小数: 定点数 浮点数 字符型: 较短文本:CHAR,VARCHAR 较长文本:TEXT,BLOB(较长的二进制数据) 日期型...注意,这里设置的长度只是显示的长度,文本实际占用字节数并没有改变 仍然是按照规定大小创建,设置了长度后,如果输入内容超出长度限制,内容没有变化 ,如果长度不足,剩余位数会用0填充 5....,小数为是2,所以整数位最多只能是3,所以超过后用最大值999.99代替 # 选择类型的原则 /* 所选择的类型越简单越好 所选择的类型越小越好 */ 字符型 # 串数据(文本类型+二进制数据).../* 较短的文本: CHAR(M) 表示固定长度字符 VARCHAR(M) 表示可变长度的字符 M 表示最长的字符数,CHAR可以省略,默认为1.VARCHAR不可以省略 较长的文本: TEXT...修改表时 约束的添加分类: 列级约束:六大约束语法都支持,但外键约束没有实际效果 表级约束:除了非空,默认约束,其他都支持 */ # 创建表时添加约束 # 创建列级约束 /* 直接在字段名和类型后面追加

    69310

    shell脚本编写手册(2021重编)

    1中字符集的补集替换此字符集,要求字符集为ASCII -d # 删除字符串1中所有输入字符 -s # 删除所有重复出现字符序列,只保留第一个...*//;p}' /etc/passwd # 取用户家目录(匹配不为/的字符和匹配:到结尾的字符全部删除) sed = filename | sed 'N;s/^/...,如果删除后,模式空间中还有剩余行,则返回 D 之前的命令,重新执行,如果 D 后,模式空间中没有任何内容,则将退出。...--infobox # 显示消息后,(没有等待响应)对话框立刻返回,但不清除屏幕(信息框) --inputbox # 让用户输入文本(输入框...# tolower 返回string1中的所有字符被转换为小写字符后的新字符串 # toupper 返回string1中的所有字符串转换为大写后的字符串

    3.3K30

    Linux小白最难掌握的7个指令,这一篇可以让你快速学习

    作用:‍快速筛选查找‍内容中包含指定的范本样式的文件或文本行。‍...*代替即可‍ ②type的类型选项: d 表示目录 l 表示符号链接 c 表示字符设备文件 b 表示块设备文件 s 表示套接字文件 p 表示管道文件‍‍‍‍‍ ③size后加文件大小即可 - 例:查找当前...利用脚本来处理文本文件,‍包‍括对‍文本进行删除、替换、插入等。 ‍‍...快速学习: - 理解基本格式:sed [选项] [动作] [文件] - 常用参数:s(替换)、d(删除)、a(追加)等 - 例:将host.conf文件中的“192.168.100.66”替换为“172.200.12.11...”: sed 's/192.168.100.66/172.200.12.11/' host.conf 修改前: 修改后: 六、chmod命令 简介:‍控制用户对文件的权限修改的指令。‍

    12900

    Java开发手册之建表规约

    说明:任何字段如果为非负数,必须是unsigned。 正例:表达逻辑删除的字段名is_deleted,1 表示删除,0 表示未删除。...说明:float和double在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不 正确的结果。如果存储的数据范围超过decimal的范围,建议将数据拆成整数和小数分开存储。...【强制】varchar是可变长字符串,不预先分配存储空间,长度不要超过5000,如果存储长度大于此值,定义字段类型为text,独立出来一张表,用主键来对应,避免影响其它字段索引效率。...【推荐】如果修改字段含义或对字段表示的状态追加时,需要及时更新字段注释。 【推荐】字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循: 1) 不是频繁修改的字段。...说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。 【参考】合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。

    59510

    Java开发手册之建表规约

    正例:表达逻辑删除的字段名is_deleted,1 表示删除,0 表示未删除。 【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。...说明:float和double在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不 正确的结果。如果存储的数据范围超过decimal的范围,建议将数据拆成整数和小数分开存储。...【强制】varchar是可变长字符串,不预先分配存储空间,长度不要超过5000,如果存储长度大于此值,定义字段类型为text,独立出来一张表,用主键来对应,避免影响其它字段索引效率。...【推荐】如果修改字段含义或对字段表示的状态追加时,需要及时更新字段注释。 【推荐】字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循: 1) 不是频繁修改的字段。...说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。 【参考】合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。

    56320
    领券