Linux C/C++ 开发(学习笔记三):Linux C编程案例

简介: Linux C/C++ 开发(学习笔记三):Linux C编程案例

一、统计文件单词数量(文件操作)

目的是为了统计txt文档中,单词数量

方案是 状态机

定义两状态,1:在字符中(IN) 2.在字符外(OUT)

因此只需要, OUT->IN的过程,即单词数量+1。默认初始化状态为OUT

(算法还需要严密,比如遇到can’t,换行可能会加-来表示换行)

#include<stdio.h>
#include<iostream>
using namespace std;
#define OUT 0
#define IN 1
#define INIT OUT
int count_word(char* filename){
    int status=INIT;
    FILE *fp=fopen(filename,"r");
    if(fp==NULL) return -1;
    char c;
    //只要统计由OUT变为IN的次数
    int word=0;
    while((c=fgetc(fp))!=EOF){
        if(!isalpha(c)){
            status=OUT;
        }
        else if(OUT==status){
            status=IN;
            word++;
        }
    }
    return word;
}
int main(int argc,char *argv[]){
    if(argc<2) return -1;
    printf("word:%d\n",count_word(argv[1]));
}

shell中进行g++编译和运行

g++ test.cpp -o test
./test a.txt

二、通讯录


相关文章
|
5月前
|
网络协议 安全 Linux
Linux C/C++之IO多路复用(select)
这篇文章主要介绍了TCP的三次握手和四次挥手过程,TCP与UDP的区别,以及如何使用select函数实现IO多路复用,包括服务器监听多个客户端连接和简单聊天室场景的应用示例。
138 0
|
5月前
|
存储 Linux C语言
Linux C/C++之IO多路复用(aio)
这篇文章介绍了Linux中IO多路复用技术epoll和异步IO技术aio的区别、执行过程、编程模型以及具体的编程实现方式。
201 1
Linux C/C++之IO多路复用(aio)
|
1月前
|
消息中间件 Linux C++
c++ linux通过实现独立进程之间的通信和传递字符串 demo
的进程间通信机制,适用于父子进程之间的数据传输。希望本文能帮助您更好地理解和应用Linux管道,提升开发效率。 在实际开发中,除了管道,还可以根据具体需求选择消息队列、共享内存、套接字等其他进程间通信方
65 16
|
2月前
|
IDE 开发工具 C语言
C++一分钟之-嵌入式编程与裸机开发
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解C++在嵌入式编程与裸机开发中的应用,提高开发效率和代码质量。
67 13
|
3月前
|
人工智能 安全 Linux
WK
|
4月前
|
机器学习/深度学习 人工智能 算法
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
190 1
|
5月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
161 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
5月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
1102 3
|
5月前
|
资源调度 Linux 调度
Linux C/C++之线程基础
这篇文章详细介绍了Linux下C/C++线程的基本概念、创建和管理线程的方法,以及线程同步的各种机制,并通过实例代码展示了线程同步技术的应用。
74 0
Linux C/C++之线程基础
|
5月前
|
Linux C++
Linux C/C++之IO多路复用(poll,epoll)
这篇文章详细介绍了Linux下C/C++编程中IO多路复用的两种机制:poll和epoll,包括它们的比较、编程模型、函数原型以及如何使用这些机制实现服务器端和客户端之间的多个连接。
112 0
Linux C/C++之IO多路复用(poll,epoll)