874复习-习题12

32 篇文章 2 订阅

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>//存放的是exit 
/*
int argc
这个东东用来表示你在命令行下输入命令的时候,一共有多少个参数。比方说你的程序编译后,可执行文件是test.exe
D:\tc2>test
这个时候,argc的值是1
但是
D:\tc2>test.exe myarg1 myarg2
的话,argc的值是3。也就是 命令名 加上两个参数,一共三个参数

char *argv[]
这个东东用来取得你所输入的参数
D:\tc2>test
这个时候,argc的值是1,argv[0]的值是 “test”
D:\tc2>test myarg1 myarg2
这个时候,argc的值是3,argc[0]的值是”test”,argc[1]的值是”myarg1”,argc[2]的值是”myarg2”。
这个东东一般用来为程序提供非常重要的信息,如:数据文件名,等等。
如:copy a.c b.txt
这个时候,a.c和b.txt就是所谓的“非常重要的信息”。不指定这两个文件,你没法进行拷贝。
当你的程序用到argc和argv这两个参数的时候,可以简单地通过判断argc的值,来看看程序的参数是否符合要求

*/
int main(int argc,char *argv[])
{
	FILE *old; 
	FILE *newfile;
	char ch;
	if(argc!=3)
	{
		/*
		如:copy a.c b.txt
		这个时候,a.c和b.txt就是所谓的“非常重要的信息”。不指定这两个文件,你没法进行拷贝。
		当你的程序用到argc和argv这两个参数的时候,可以简单地通过判断argc的值,来看看程序的参数是否符合要求
		*/
		printf("You forgot to enter a filename\n");
		exit(0);
	}
	if((old=fopen(argv[1],"rb"))==NULL)
	{
		printf("cannot open infile\n");
	}
	if((newfile=fopen(argv[2],"wb"))==NULL)
	{
		printf("cannot open outfile\n");
		exit(0);
	}
	//通过fgetc函数从原有文件中逐个字节地读出 
	//通过fputc函数向新复制文件中逐个字节地写入,一直到原有文件结束为止 
	while(!feof(old))
	fputc(fgetc(old),newfile);
	fclose(old);
	fclose(newfile);
	return 0;	
}

在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i,j;
	FILE *fp;
	if((fp=fopen("bi.dat","wb"))==NULL)
		exit(0);
	for(i=0;i<10;i++)
	{
		scanf("%d",&j);
		fwrite(&j,sizeof(int),1,fp);
	}
	fclose(fp);
}

在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>

#define MAX 256

int main(int argc,char *argv[]){
	FILE *fp;
	char string[MAX];
	int i;
	
	if(argc!=2)
	{
		printf("the number of arguments not correct\n");
		printf("\n Usage:可执行文件名 dispfilename");
		exit(0);
	}
	if((fp=fopen(argv[1],"r"))==NULL)
	{
		printf("can not open file\n");
		exit(0);
	}
	i=1;
	while(fgets(string,MAX,fp)!=NULL)
		printf("%d %s",i++,string);
	
	fclose(fp);
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向上Claire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值