从命令行窗口输入数据以二进制形式传入文件

今天我们来看一下如何从命令行窗口输入数据,使数据以二进制形式写入文件的问题:
解这个问题主要有两步:

  1. 从命令行窗口获得你写入的数据,先将其输出
  2. 将获得的数据写入文件

下面是我的代码:

#include "stdafx.h"

int writeFile(char *argv[]);//从命令行窗口输入数据以二进制形式传入文件

int writeFile(char *argv[]){
	FILE *fp; //定义文件指针
	char *p;
	if((fp=fopen("char.dat","w"))==NULL){  
		printf("failed\n");
		return 0;
	}
	for(int i=0;argv[i]!='\0';i++){
		p=argv[i];
		while(*p!=0){
			fwrite(&(*p),sizeof(*p),1,fp);
			p++;
		}
	}
	fclose(fp);
	return 0;
}

int main(int argc, char *argv[])
{	
	writeFile(argv);
	return 0;
}

解析:
首先我声明了一个writeFile()函数,函数里面只传了一个参数char* argv[] , 这是一个字符串指针数组,它是命令行参数,是系统自定义的,用来从命令行窗口接受用户输入的数据。然后定义了文件指针fp,fp指向文件“char.dat", ’.dat‘后缀表示 这是一个二进制文件,‘w’表示对文件进行写操作。紧接着循环遍历数组argv,将数组元素逐个写入二进制文件中,其中fwrite(&(*p),sizeof(*p),1,fp) : &(*p)表示写入文件的第一个数据的地址,sizeof(*p)为每个元素的字节数,1表示逐个写入,fp是定义的文件指针。最后将文件关闭。

猜你喜欢

转载自blog.csdn.net/qq_40871196/article/details/85018427