先在解决方案的同级目录下创建一个.txt文件用于实验操作
修改文件的打开方式
将命令参数修改为相对路径
FILE* fp = fopen(argv[1], "r+");
启动.exe文件调用我的main()函数
(.exe文件生成在解决方案同级的debug目录下)
#define _CRT_SECURE_NO_WARNINGS #includefread和fwrite//main函数由启动我们exe的程序调用 int main(int argc,char *argv[]) { printf("argc=%dn", argc);//传递了多少个参数 int i; //输出每一个参数 for (i = 0; i < argc; i++) { printf("%sn", argv[i]); } // 打开文件 相对路径 //FILE* fp = fopen("file.txt", "r"); //直接通过传参选择需要打开的文件,需要传参 //r+可读写 //FILE* fp = fopen(argv[1], "r+"); //只写 FILE* fp = fopen(argv[1], "w"); if (NULL == fp) { //打印报错信息 perror("fopen"); return 0; } char c; //打印字符 //while ((c = fgetc(fp)) != EOF) //{ // printf("%c", c); //} //写入字符 int ret; ret = fputc('w', fp); if (EOF == ret) { perror("fopen"); } //执行fclose时字符才成功写入 fclose(fp); return 0; }
#define _CRT_SECURE_NO_WARNINGS #includefread和fwrite处理整形的情况int main() { FILE* fp = fopen("file.txt", "r+"); if (NULL == fp) { //打印报错信息 perror("fopen"); return 0; } //初始化解决输出乱码的问题 char buf[128] = {0}; int ret; //写入 strcpy(buf, "howareyou"); ret = fwrite(buf, sizeof(char), strlen(buf), fp); //将磁盘上的buf清空,确认读出来的是成功写入的 memset(buf, 0, sizeof(buf)); //改变文件指针fp fseek(fp,-9, SEEK_CUR); //读出 ret=fread(buf, sizeof(char), 20, fp); puts(buf); return 0; }
#define _CRT_SECURE_NO_WARNINGS #includeint main() { FILE* fp = fopen("file.txt", "r+"); if (NULL == fp) { //打印报错信息 perror("fopen"); return 0; } int i = 9; fwrite(&i, sizeof(int), 1, fp);//在ascii码表上对应的是水平制表栏,所有写入的内容看不见 fseek(fp, 0, SEEK_SET); int j = 0; fread(&j, sizeof(int), 1, fp); printf("j=%dn", j); fclose(fp); }



