clc,clear
a=rand(500,1000);
c=randi([10,100],1000,1);
b=randi([100,200],500,1);
fid=fopen('data1.txt','w');
fprintf(fid,'%f\n',a);
fprintf(fid,'%c\n','~');
fprintf(fid,'%4d\n',c);
fprintf(fid,'%c\n','~');
fprintf(fid,'%4d\n',b);
fclose(fid);
这个程序里面的‘%4d\n’等里面的\n是换行的意思吗?如果是,为什么打开txt文件以后还是没有换行的效果呢?而且如果我去掉\n以后,txt文件就打不开了,这是为什么……
1、你是用记事本打开文件的吧?如果用其它编辑器(例如Word、UltraEdit)打开,是可以看到换行的效果的。
2、把
fid=fopen('data1.txt','w');改成
fid=fopen('data1.txt','wt');可以达到换行的效果。
你原来的写法是按照二进制模式打开文件的,后面那个建议的写法是按照文本模式打开。在Windows系统上,按文本模式打开文件的主要作用是,在写入换行符(\n)的时候,同时会插入一个回车符(\r\n),而如果是单独的换行符,记事本就只会显示成一个小的黑方块。
3、另一种改法是,打开文件的方式不变,但把 \n 改为 \r\n。显然这种方法更繁琐。
4、你说的“去掉\n以后,txt文件就打不开了”,应该不会。不过,也可能是行太长导致显示存在问题。