问题是,在循环里面,把每一次循环的数据都写入txt文件,下一个循环的数据,紧接着写出来
当然可以有一个解决问题就是,设置cell,把每次的循环的数据都存在里面,最后在循环外面输入到txt文件或者Excel文件
但是我觉得这样很麻烦,我的程序是循环套循环,很多嵌套。所以决定还是按照原来的思路来改
也就是把写入文件的代码都放到循环里面,然后每次运行的结果都会保存在文件里面
所以需要进行一个工作,就是循环写入我的数据
关于Excel的循环写入在上一篇文章中
这次是txt的文件
然而问题非常简单,因为txt文件的写入命令其实很完善
只要留意txt文件的 fopen 的指令后面的 permission就可以了
w 的话是可以写入,但每次写入都会刷新数据
a 的话就是可以从上一次数据写入 最末端继续写入
关于循环写入的换行问题,依然是转义字符的使用
假设我输出里面 output1 和 output2 是我的 两个已经定义好的变量,他们的数据类型当然本身都是字符串
下面是一个可以实现的代码
txtfile1 = fopen('result.txt', 'a');
fprintf(txtfile1,'%s score is : %s %s %s \r\n\n ','name','sum','mean','std');
fprintf(txtfile1,'%s score is : %d %5.3f %5.3f \r\n ',yourname,ysum,ymean,ystd);
fprintf(txtfile1,'%s score is : %d %5.3f %5.3f \r\n ',dreamyname,dsum,dmean,dstd);
fprintf(txtfile1,'%s\n',output1,output2);
fclose (txtfile1);
但是这个代码,不能实现 output1 和 output2 之间的换行
然后就想起来可以用strcat的函数,并在里面运用ascii代码,跟之前在input中实现的一样,就可以换行了
13 是换行的意思,32 是空格的意思
下面是改良的代码
txtfile1 = fopen('result.txt', 'a');
fprintf(txtfile1,'%s score is : %s %s %s \r\n\n ','name','sum','mean','std');
fprintf(txtfile1,'%s score is : %d %5.3f %5.3f\r\n ',yourname,ysum,ymean,ystd);
fprintf(txtfile1,'%s score is : %d %5.3f %5.3f\r\n ',dreamyname,dsum,dmean,dstd);
output = strcat(13,output1,13,output2,13,13);
fprintf(txtfile1,'%s\n',output);
fclose (txtfile1);