今天我们来看一下如何从命令行窗口输入数据,使数据以二进制形式写入文件的问题:
解这个问题主要有两步:
- 从命令行窗口获得你写入的数据,先将其输出
- 将获得的数据写入文件
下面是我的代码:
#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是定义的文件指针。最后将文件关闭。