最近有个需求,就是要把一个C++工程代码某个部分的数据变量数据采样出来一些,涉及到把大批量数据多次读到多个文件中。

(我还特意问了一个腾讯的后端同学大佬)这里不得不吐槽下C++,这么多年过去了,写数据还是只能一个一个往文件中写,哈哈哈,底层的基本操作永远都不过时。

正常的打开文件读写数据,用fopen,然后fprintf就可以了,不过,我这里有个小需求,就是要对文件进行有规律的命名,例如a_1.txt、a_2.txt、a_3.txt......等等。

这时就需要用到一个函数sprintf了,这个函数的作用主要就是:把你想要的控制变量传递到字符串中你规定的位置上,如下:

for(i=0;i<10;i++){
sprintf(fname,"./mmm/data_%d.txt",i);    }

其中%d就是把整数i传到它所在的位置,最后再把整个字符串传递给fname,然后再用fopen打开即可,整段代码如下:

FILE *fp = NULL; char fname[20]; for(i=0;i<10;i++){ sprintf(fname,"./mmm/data_%d.txt",i); fp = fopen(fname,"w"); for(j=0;j<10;j++){ fprintf(fp,"%f ",arr[i][j]); fclose(fp);
前面几篇文章中我们讲解了OPEN操作中最基本的情况: 打开 服务器端存在的一个 文件 ,接下来的几篇文章中,我们讨论几种特殊情况。这篇文章中我们先讨论第一种情况:同一个用户连续两次 打开 同一个 文件 。     用户user1以只读权限 打开 文件 file1,未关闭 文件 的情况下又以只读权限 打开 文件 file1。第一次执行正常的操作,向服务器发送OPEN请求。那么第二次呢?还需要向服务器发送OPEN请求吗?事实上