将Linux C Char数组转换为Int
发布时间:2020-12-14 01:24:45 所属栏目:Linux 来源:网络整理
导读:需要一些关于这个的建议,因为我正在努力实现并无法弄明白. 我有一个文件,在PC上更新,以指示系统运行和运行的时间.我正在写一个非常简单的linux控制台应用程序(最终将成为一个nagios插件).读取此文件并根据文件中的内容进行响应. 我是Linux上编程和使用C的全
需要一些关于这个的建议,因为我正在努力实现并无法弄明白.
我有一个文件,在PC上更新,以指示系统运行和运行的时间.我正在写一个非常简单的linux控制台应用程序(最终将成为一个nagios插件).读取此文件并根据文件中的内容进行响应. 我是Linux上编程和使用C的全新手,所以请耐心等待,如果你能解释任何答案,我将非常感激. 基本上我想将包含5个字符的char数组转换为整数,但数组中的第5个字符始终是一个字母.所以从技术上讲,我想要做的就是将数组中的前4个字符转换为整数…如何?我试过多种方法但没有成功,我的问题是,目前我对语言没有很好的掌握,所以对它能做什么和不能做什么没有真正的想法. 这是我的程序的来源. 基本上buf数组将保存从文件中取出的字符串,看起来像这样 3455Y(数字将是随机的,但总是4个字符长). 很抱歉代码格式不佳,但我无法得到这个愚蠢的爱情窗口,也没有金钱来正确格式化…. include <fcntl.h> include <unistd.h> include <stdio.h> include <stdlib.h> include <time.h> include <string.h> define COPYMODE 0644 int main(int argc,char *argv[]) { int i,nRead,fd; int source; int STATE_OK = 0; int STATE_WARNING = 1; int STATE_CRITICAL = 2; int STATE_UNKNOWN = 3; int system_paused = 0; char buf[5]; int testnumber; if((fd = open(argv[1],O_RDONLY)) == -1) { printf("failed open : %s",argv[1]); return STATE_UNKNOWN; } else { nRead = read(fd,buf,5); } close(source); if (buf[4] == 'P') { printf("Software Paused"); return STATE_WARNING; } else { return STATE_OK; } time_t ltime; /* calendar time */ struct tm *Tm; ltime=time(NULL); /* get current cal time */ Tm=localtime(<ime); int test; test = Tm->tm_hour + Tm->tm_min; printf("%d",test); printf("%d",strtoi(buf)); } 解决方法
你可以使用atoi
atoi需要一个char *参数并返回一个int. int num = atoi(buf); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- linux – Apache / httpd无法在启动时自动启动
- linux – 这是HPC还是HA mySQL集群?
- linux – 使用crontab和/etc/cron.hourly,daily,weekly之间
- linux – 推荐的电子邮件客户端来读取/应用git补丁?
- linux – 如何将多个struct BIO组合成单个struct请求?
- 关于linux系统CPU篇--->CPU使用率升高
- linux – 在没有sudo的情况下向非root用户授予一组命令的访
- linux – 如果在边缘触发模式下调用epoll_ctl之前文件是可读
- linux – 如何在Go中将消息打印到stderr?
- 备份Linux Web服务器的最佳方法是什么?