打卡机程序编写回顾

算法方面没什么难点,主要就是一些最基本的操作细节。

1.字符串和字符数组

在C语言中,字符串和字符数组都用char arr[]形式声明,具体初始化赋值存在差别:

// 字符数组赋初值    
char cArr[] = {'I','L','O','V','E','C'};    
// 字符串赋初值    
char sArr[] = "I LOVE C";

在声明字符串时 需为结尾’\0’保留一个字节,否则获得的字符串不完整,在实际输出时将无法结束,从而导致后续跟随的不属于本字符串的内容也将被一起输出。
求取其长度可用sizeof 和 strlen 2个函数:

printf("cArr的长度=%d\n", sizeof(cArr)); // 对于上例其值为6
printf("sArr的长度=%d\n", sizeof(sArr)); // 值为7       printf("cArr的长度=%d\n", strlen(cArr)); // 值为7   
printf("sArr的长度=%d\n", strlen(sArr)); // 值为6

2.stdio操作

在C语言中,从bash获取输入到系统变量踩了不少坑。
在Visual Studio中,不建议使用scanf函数,而建议使用scanf_s函数。总结得到对于字符串、单个字符、数字的获取方式的代码可写为:

// 字符串输入
char input[20];
gets_s(input, LEN); // 直到输入回车才结束 接收整个字符串 包括'\0'
// 单个字符输入
char symbol = (char)getchar();
// 获取单个数字
int number = 0;
scanf_s("%d", &number);
getchar(); // 需要附加该语句来接收 从bash输入用于表示结束的回车

在Linux中,没有scanf_s和gets_s函数,且其包含的getline函数并不合用,都需采用scanf函数进行处理,代码可写为:

// 字符串输入
char input[20];
scanf("%[^\n]", input);
getchar();
// 获取单个字符输入
char symbol = (char)getchar();
// 获取单个数字输入
int number = 0;
scanf("%d", &number);
getchar(); 

3.项目文件编译及组织

一般一个项目包含3个文件夹:header,source,output,在编写组织过程中,所有.h文件放入到header文件夹中,所有.c文件(包括main函数文件)放入到source文件夹中,output文件夹保存生成的文件。
在Visual Studio中这样组织编写代码没有问题,其可以帮助管理的很好。
在Linux的VS Code中,就需要在文件编写中注意一点,在.c文件的头文件包含中:

#include <库文件> // 没问题
#include "自建头文件" // 编译提示找不到文件
#include "header/自建头文件" // 编译提示找不到文件
#include "../header/自建头文件" // 只有这样写才能通过编译

一般还编写build.sh脚本文件来帮助编译,其一般放在主目录中,与header,source,output文件夹平级。
当使用math.h头文件中的函数时 在编译文件时 需在编译命令末尾添加-lm选项,如:

gcc main.c source/module.c -o main.out -lm
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,打卡程序编写可以分为两个主要步骤: 1. 数据获取和处理 首先,您需要获取需要打卡的数据,例如员工名单、打卡时间、打卡地点等。可以使用Python中的`requests`模块进行网页爬虫,或者读取本地Excel、CSV等格式的文件。 然后,您需要对获取到的数据进行处理,例如筛选出需要打卡的员工、检查打卡时间等。可以使用Python中的`pandas`、`numpy`等数据处理模块进行数据清洗和转换。 2. 自动化打卡 接下来,您需要编写代码自动化完成打卡操作。这里提供一种基于Selenium和Chrome浏览器的自动打卡实现方式: 首先,安装Selenium和ChromeDriver。Selenium可以使用`pip install selenium`命令进行安装,ChromeDriver可以从官网下载对应版本的驱动程序。 然后,编写Python代码,启动Chrome浏览器,并打开打卡网站进行登录和打卡操作。可以使用以下代码片段作为参考: ```python from selenium import webdriver # 设置ChromeDriver路径 driver_path = "path/to/chromedriver" # 创建Chrome浏览器对象 browser = webdriver.Chrome(executable_path=driver_path) # 打开打卡网站 url = "https://example.com" browser.get(url) # 登录 username = browser.find_element_by_id("username") password = browser.find_element_by_id("password") login_button = browser.find_element_by_xpath("//button[@type='submit']") username.send_keys("your_username") password.send_keys("your_password") login_button.click() # 打卡 checkin_button = browser.find_element_by_xpath("//button[@class='checkin']") checkin_button.click() # 关闭浏览器 browser.quit() ``` 以上代码中,ChromeDriver路径需要替换为实际路径,打卡网站、账号和密码需要替换为实际信息。`find_element_by_xxx`方法可以通过XPath、CSS Selector、ID等方式查找网页元素,用于实现自动化操作。 最后,将数据获取和处理和自动化打卡代码结合起来,即可完成打卡程序编写

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值