作业训练------通过读取c.txt文件中的内容等号右值,并将右值的最大值、最小值、平均值打印到屏幕上。
这篇博客是学习传智播客c++教程的作业,通过在网上进行搜集来完成,但是网上有相似的代码,但是结果总是有点问题,所以本文写了这篇记录下。
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
//3.1去除字符串右边的空格
char *TrimStrR(char *SrcStr)
{
if (SrcStr == NULL)
{
printf("TrimStrR function is error!");
return NULL;
}
int i = ;
int iLen = strlen(SrcStr);
for(i = (iLen -);i>=;i--)
{
if(SrcStr[i] == ' ')
SrcStr[i] = ;
else
break;
}
return SrcStr;
}
//3.2去掉字符串左边的空格
char *TrimStrL(char *SrcStr)
{
if (SrcStr == NULL)
{
printf("TrimStrR function is error!");
return NULL;
}
if(SrcStr[] != ' ')
{
return SrcStr;
}
int i = ;
int iLen = strlen(SrcStr);
if(iLen == )
{
return SrcStr;
}
char *stemp = (char*)malloc(iLen+);
memset(stemp,,iLen+);
memcpy(stemp,SrcStr,iLen);
for(i = ;i<iLen;i++)
{
if(SrcStr[i] != ' ')
{
strcpy(stemp,SrcStr+i);
break;
}
}
strcpy(SrcStr,stemp);
free(stemp);
return SrcStr;
}
//3.3解析带等号的字符串并去掉字符串传尾部空格
void ParseValueStr(char *Des,char* SrcStr)
{
int iLen = strlen(SrcStr);
if(iLen == )
{
return ;
}
if((SrcStr[iLen -] == '\n')||(SrcStr[iLen -] == '\r'))
{
SrcStr[iLen -] = '\0';
}
if(iLen > )
{
if((SrcStr[iLen -] == '\n')||(SrcStr[iLen -] == '\r'))
{
SrcStr[iLen -] = '\0';
}
}
TrimStrR(SrcStr);
int i = ;
for(i= ;i<iLen;i++)
{
if((*SrcStr) == '=')
{
strcpy(Des,++SrcStr);
break;
}
++SrcStr;
}
TrimStrL(Des);
}
//3.4计算数组buf中的最大值,参数bufsize为参数buf的元素数量
int max(const int *buf,const int bufsize)
{
int tmp = buf[];
int i = ;
for(i = ;i<bufsize;i++)
{
if(tmp <= buf[i])
tmp = buf[i];
}
return tmp;
}
float avg(const int *buf,const int bufsize)
{
float sum = ;
int i = ;
for(i = ;i<bufsize;i++)
{
sum += buf[i];
}
return sum/bufsize;
}
int min(const int *buf,const int bufsize)
{
int tmp = buf[];
int i = ;
for(i = ;i<bufsize;i++)
{
if(buf[i] == )
continue;
if(tmp >= buf[i])
tmp = buf[i];
}
return tmp;
}
int main(int args, char*argc[])
{
if (args < )
{
printf("parameters is error!\n");
}
char buf[];
char value[];
int values[];
memset(values,,sizeof(values));
FILE* fp = fopen(argc[], "r");
int i = ;
int j = ;
while(!(feof(fp)))
{
memset(buf,,sizeof(buf));
memset(value,,sizeof(value));
fgets(buf,sizeof(buf),fp);
ParseValueStr(value,buf);
values[i] = atoi(value);
i++; }
for(j = ;j<i-;j++)
{
printf("%d\n",values[j]);
}
fclose(fp);
printf("最大值:%d\n",max(values,i));
printf("最小值:%d\n",min(values,i));
printf("平均值:%f\n",avg(values,i));
return ;
}
下面是运行后的结果:
作业训练------通过读取c.txt文件中的内容等号右值,并将右值的最大值、最小值、平均值打印到屏幕上。的更多相关文章
- Flex读取txt文件中的内容(三)
Flex读取txt文件中的内容 1.设计源码 LoadTxt.mxml: <?xml version="1.0" encoding="utf-8"?> ...
- Flex读取txt文件中的内容(二)
Flex读取txt文件中的内容 自动生成的文件 LoadTxt-app.xml: <?xml version="1.0" encoding="utf-8" ...
- Flex读取txt文件中的内容(一)
Flex读取txt文件中的内容 phone.txt: 13000003847 13000003848 13000003849 13000003850 13000003851 13000003852 1 ...
- Flex读取txt文件中的内容报错
Flex读取txt文件中的内容 1.具体错误如下 2.错误原因 读取文件不存在 var file:File = new File(File.applicationDirectory.nativePat ...
- 向txt文件中写入内容(覆盖重写与在末尾续写+FileOutputStream与FileWriter)(转发:https://blog.csdn.net/bestcxx/article/details/51381460)
!!!! 读取txt文件中的内容 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; /** ...
- 代码实现:定义一个文件输入流,调用read(byte[] b)方法,将a.txt文件中的内容打印出来(byte数组大小限制为5)
package com.loaderman.test; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; im ...
- 按行读取TXT文件中的内容
public Dictionary<int, string> GetDicFromLog() { try { StreamReader sr = new StreamReader(file ...
- js读取本地txt文件中的json数据
list.txt内容 [ {"optionKey":"1", "optionValue":"Canon in D"}, ...
- Java中读取txt文件中中文字符时,出现乱码的解决办法
这是我写的一个Java课程作业时,遇到的问题. 问题描述: 我要实现的就是将txt文件中的内容按一定格式读取出来后,存放在相应的数组. 我刚开始运行时发现,英文可以实现,但是中文字符就是各种乱码. 最 ...
随机推荐
- js中=,==,===的区别
= 赋值 == 先判断类型,在判断值,可以做类型转换 === 恒等判断
- Tomcat 使用redis实现session共享
准备工作: 1.安装nginx 环境搭建参考:https://blog.csdn.net/fd2025/article/details/79878326 nginx.conf的编辑: 2.同一台机器配 ...
- 25款css动画库
http://www.swiper.com.cn/usage/animate/index.html //swiper https://cssanimation.io/ http://ianlunn ...
- linux diff3-比较3个文件不同的地方
推荐:更多Linux 文件查找和比较 命令关注:linux命令大全 diff3命令用于比较3个文件,将3个文件的不同的地方显示到标准输出. 语法 diff3(选项)(参数) 选项 -a:把所有的文件都 ...
- Win2008 Server下配置安装IIS
最近又买了台服务器,接下来就是配置环境啦. 接下来接记录一下IIS的配置过程. 首先找到服务器管理器 打开后找到角色,点击添加角色 处理添加角色向导 勾选Web服务器(IIS) 点击添加必要功能 然后 ...
- 恶补数论(二) Baby-Step-Giant-Step 大步小步求离散模对数
知识概述 好吧,我承认这是我初三寒假就听过的知识,然而我现在早就高一了(又是寒假,只不过我已经在省选了...) 额,这是求离散模对数的一种算法 也就是求满足方程a^x≡b(mod p)的最小的x(其中 ...
- [bzoj1833][ZJOI2010][count] (数位dp)
Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output 输出文 ...
- Spring 事务XML配置
<!-- 配置 Spring 的声明式事务 --> <!-- 1. 配置事务管理器 --> <bean id="transactionManager" ...
- 【OpenCV, MFC】利用MFC和OpenCV通过系统对话框打开和保存图片
打开图片: void CImageProDlg::OnImageopen() { // TODO: 在此添加命令处理程序代码 Invalidate(); CFileDialog dlg(TRUE, N ...
- noip模拟赛 whzzt-Conscience
分析:数据中并不存在无解的情况...... 每个摄像头都要覆盖尽可能多的点,按照y从小到大排序.对于每一列,只用判断第一个没有被观测到的就可以了,这个点必须要放摄像头,因为除了它自己没有其它的摄像头能 ...