c语言学习进阶-C语言带命令行参数的文件数据批量计算
C语言带命令行参数的文件数据批量计算
(1)假设输入文件中的数据为多行整数,把数据文件命名为“InputData.txt”,也可以命名为任意的文件名,尝试设计一个c 语言程序, 主函数采用带命令行参数的形式,int main(int argc,char argv []),将输入文件名和输出文件名作为命令行参数引入程序对输入数据文件的数据进行计算。例如求取各个数据的三次方,将数据结果输出到数据输出文件中,输出文件的格式是多行整数的文本文件。表示编译程序为FileReadAndWrit3212.exe,那么执行命令行参数:d:>FileReadAndWrit3212.exe InputData.txt OutputData.txt,就会将以上计算结果输出到文件名为OutputData.txt 的文件中。
求取各个数据的三次方c语音代码y=pow(x,3), 或y=xx*x。
代码如下:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include <ctype.h>
#include <stdlib.h>
int main(int argc,char*argv[])
{FILE*fp1,*fp2;//文件指针表示的两个流if (argc!=3){printf("参数输入不正确!"); printf("提示:命令 输入文件 输出文件");}if(fp1==NULL){printf("输入文件打开失败");return 0;}fp1=fopen(argv[1],"r");//打开并读取参数argv[1]对应的输入文件int a,c, i=0,j=0;int lines = 0; //行数float x,y;//x为输入的数字,y为输出的数字//fp2=fopen(argv[2],"w");//打开并写入参数argv[2]对应的输出文件,与“w”相比“a”也可以写入文件,但是写之前文件不进行格式化//检测行数//while((c = fgetc(fp1))!= EOF){if(c=='\n') lines++; } lines = lines+1; fclose(fp1);int data[ lines ]; //存放运算结果 char sdigit [ lines*2]; //检测格式数组//判断文件格式/ fp1=fopen(argv[1],"r");//打开并读取参数argv[1]对应的输入文件while(!feof(fp1))//feof本身是一个非负的整型常量,表明以达到文件末尾{fscanf(fp1,"%s",sdigit);for(j=0;sdigit[j];++j){if(isdigit(sdigit[j])){//x=sdigit[j];//y=pow(x,3);//fprintf(fp2,"%f\n",y);//格式化的文件输出,读入并且赋值给实际参数,从第一个参数fp2指定的流中输出内容}//返1else{printf("文件中有字母或汉字");//fprintf(fp2,"%c\n",sdigit[j]);//格式化的文件输出,读入并且赋值给实际参数,从第一个参数fp2指定的流中输出内容 exit(0);}}}fclose(fp1);//写入文件///float x,y;//x为输入的数字,y为输出的数字fp1=fopen(argv[1],"r");//打开并读取参数argv[1]对应的输入文件fp2=fopen(argv[2],"w");//打开并写入参数argv[2]对应的输出文件,与“w”相比“a”也可以写入文件,但是写之前文件不进行格式化while(!feof(fp1))//feof本身是一个非负的整型常量,表明以达到文件末尾{fscanf(fp1,"%f\n",&x);//格式化的文件输入,读入并且赋值给实际参数,从第一个参数fp1指定的流中读入内容//scanf("%d",&x);//总是从标准输入流stdin中读入内容//y=x*x*x;//计算x的三次方data[i]=pow(x,3);//printf("data[%d]:%d",i,data[i]);//fprintf(fp2,"%f\n",y);//格式化的文件输出,读入并且赋值给实际参数,从第一个参数fp2指定的流中输出内容//prinf("%d",&y);//总是从标准输入流stdin中输出内容fprintf(fp2,"%d\n",data[i]);//格式化的文件输出,读入并且赋值给实际参数,从第一个参数fp2指定的流中输出内容//prinf("%d",&y);//总是从标准输入流stdin中输出内容i++;}fclose(fp1);//fclose(fp2);return 0;if (fclose(fp1)!=0);//关闭文件成功关闭则返回值为0{printf("文件 %s\n 关闭错误",argv[1]);}if (fclose(fp2)!=0);{printf("文件 %s\n 关闭错误",argv[2]);}
}
/
//验证
//gcc p.c -o p.exe
//p.exe myinput.txt myoutput.txt
//p.exe
//p.exe myin.txt myoutput.txt
命令编译行执行如图:
结果在文本文件中呈现如图:
c语言学习进阶-C语言带命令行参数的文件数据批量计算相关推荐
- c语音学习进阶-C语言带命令行参数的程序设计
C语言带命令行参数的程序设计 (1)深入理解并学习带命令行参数的程序设计方法,使用c 语言完成带命令行参数的科学计算程序,能从给定的任意文件名的文件当中输入数据,并能向给定的任意文件名的输出文件当中输 ...
- python编写请求参数带文件_转载:如何编写一个带命令行参数的Python文件
看到别人执行一个支持命令行参数的python文件,瞬间觉得高大上起来.牛逼起来,那么如何编写一个带命令行参数的python脚本呢?不用紧张,下面将简单易懂地让你学会如何让自己的python脚本,支持命 ...
- vs2013中带命令行参数的调试方法
@VS2013带命令行参数的调试方法 在C++函数参数传递中,我们知道,main函数是演示C++程序如何向函数传递数组的好例子.一般来说,我们定义的大多main函数都只有空的形参列表: int mai ...
- 程序4-1 对每个命令行参数打印文件类型
1 //http://blog.chinaunix.net/uid-24549279-id-71355.html 2 /* 3 ==================================== ...
- c语言学习进阶-C语言程序产生正态分布随机数
C语言程序产生正态分布随机数 目录 C语言程序产生正态分布随机数 **中心极限定理(大数定理)** **Hasiting有理逼近法:** **反函数产生给定分布的随机数法:** **Box-Mulle ...
- c语言学习进阶-C语言程序出错处理
C语言程序出错处理 命令行参数实现C语言程序出错处理 (1)执行d:>p.exe myinput.txt myoutput.txt 时,如果指定的文件名myinput.txt 不存在,那么程序应 ...
- c语言学习进阶-C语言程序性能优化
标题C语言程序性能优化 (1)进一步提升程序的计算能力.使之能计算任意实数的任意次方的输出结果,我们 将计算的次方数也放在命令行参数中,作为第3 个命令行参数,例如:d:>p.exe input ...
- 【C 语言】数组 ( 指针数组用法 | 命令行参数处理 )
文章目录 一.指针数组用法 ( 命令行参数处理 ) 二.完整代码示例 一.指针数组用法 ( 命令行参数处理 ) main 函数是 操作系统 与 应用程序 交互的入口 , main 函数的 char* ...
- 带命令行参数的main函数的误解[到处转载的垃圾]
参考带命令行参数的main函数详解[转载] http://www.cnblogs.com/xdshennju/archive/2012/01/23/2328992.html 一个C程序总是从main( ...
最新文章
- DotNetTextBox V3.0 所见即所得编辑器控件 For Asp.Net2.0(ver 3.0.9Beta)
- cocos lua 创建替换图片
- 计算机语言是人们设计用于人与计算机交互,计算机语言是人们设计的用于人与计算机交互,计算机能够______与执行的一套规约和语法的集...
- docker部署rocketmq
- vue 定义全局弹框_用vue/react写一个全局提示弹框
- access如何设置定期报表汇总_报表工具选型对比系列 - 大报表
- 加班累到住院,到30岁年薪百万:你所谓的拼命,绝不是职场捷径
- ipv6地址在线计算_关于IPv6的八个浅言问答
- 什么叫网关精解(超经典)
- Android Studio工程中添加移动广告平台广告条代码教程
- 玩转3D全息图像!AI即刻生成
- 风控每日一问:风控工作的价值在于?
- android获取SIM卡信息和手机号码
- 苏州持续深化区块链技术在公证领域的应用
- 2022最新淘宝天猫商品评论采集
- 计算机辅助数学教学论文,计算机辅助数学教学论文
- NMS——非极大值抑制
- 饥荒服务器mod本地文件,饥荒最新实用MOD合集一览
- c语言数组最大值最小值 平均值,C语言数组的最大值,倒序,平均值等方法分享...
- IIS发布.bak文件,mime类型为是什么?
热门文章
- 华为p10 鸿蒙,全面上线!华为鸿蒙新消息传来,这是要彻底替换安卓
- sdk linux 离线安装方法,Android SDK离线安装方法详解(加速安装)
- plsq卸载 删除注册表、_别再用老方法卸载电脑软件了,只会让电脑越来越慢
- php 最长公共子串,PHP实现求解最长公共子串思路方法
- vue获取编辑器纯文字_vue中使用富文本编辑器
- wegame饥荒一直连接中_谁是老牛?谁是嫩草?WeGame与老牌网游的故事 | 游戏茶馆...
- python pandas写入_51-python3 pandas读写excel
- 设计素材|剪纸风新年春节烫金PSD分层模板,牛气!
- 设计师们知道几个网站?属于设计师的网址导航!
- 迷失lost结局什么意思_蒙上你的眼结局是什么意思?最后谁活下来了