最近有个需求,就是要把一个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请求吗?事实上