从文件中获取指定字符串源码

2024-04-15 01:08

本文主要是介绍从文件中获取指定字符串源码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从文件中获取指定字符串源码
#include #include #include #include void help()
{
fprintf(stderr, "get string from file   -v1.0.1\t\t\t(c)Tody, 2013"\
"\nUsage:\n  wAt [-l ] [-s ] [-e ] [-B] [-F ] [-h]"\ "\n\t-l means the line number specified"\ "\n\t-s means start char location"\ "\n\t-e means end char location"\ "\n\t-B means print 'set value=string'"\ "\n\t-F means you need to specified file to get the string you want" "\n\t-h means this help message"); exit(1); } void oops(char *msg) { fprintf(stderr, "%s", msg); exit(1); } int getString(char *str, int sc, int ec, int isBatch) { char *tmp = str; if (str==NULL) return 1; if (ec !=0 ) *(str+ec)='\0'; if (sc != 0) tmp=tmp+(sc-1); if (isBatch) { printf("set value=%s", tmp); } else printf("%s", tmp); return 0; } int main(int argc, char *argv[]) { FILE *f=NULL; char filename[128]; int isBatch = 0; char buf[80]={'\0'}; int ch; int line = 1; int sc=0; int ec=0; int index = 1; if (argc<2) help(); while((ch = getopt(argc, argv, "l:s:e:hBF:")) != -1) { switch(ch) { case 'l': line = atoi(optarg); if (line == 0) oops("line is not a number"); break; case 's': sc = atoi(optarg); if (sc == 0) oops("start char is not a number"); break; case 'e': ec = atoi(optarg); if (ec == 0) oops("end char is not a number"); break; case 'B': isBatch = 1; break; case 'h': help(); break; case 'F': strncpy(filename, optarg, 128); break; case '?': oops("Error option!"); break; } } if (argc != optind) help(); f = fopen(filename, "rb"); if (f==NULL) oops("File open error"); while(!feof(f)){ fgets(buf, 80, f); if (index == line) { fclose(f); return getString(buf, sc, ec, isBatch); } else index ++; } // printf("Line: %d sc: %d ec: %d", line, sc, ec); fclose(f); return 1; } 

这篇关于从文件中获取指定字符串源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/904522

相关文章

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

使用Python合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单