C语言,fopen打开txt文件,fprintf写数据,需要循环。

有下面程序:

 float a[N] = { 0 }, b[N] = { 0 };
 for (int i = 0; i < N; i++)
 {
     a[i] = (float)(sin(2 * M_PI * i * F1 / N) + 0.25* sin(2 * M_PI * i * F2 / N));
 }

 FILE* fp;

 fp = fopen("text.txt", "w");
 if (feof(fp))
 {
     printf("NULL");
     exit(0);//表示如果读取为空文件就正常退出
 }

 for (int i = 0; i < N; i++)
     fprintf(fp, "%.6f\n", a[i]);
 fclose(fp);

比较复杂的看这些:

【精选】C语言 文本文件读取、写入与定位(详细介绍)_c语言写入文本文件_Gretel Tade的博客-CSDN博客

其中fread和fwrite其实都可以。

MATLAB,是一样的:

fs = 100;
t = 0:1/fs:1;
x = sin(2*pi*t*3)+0.25*sin(2*pi*t*40);

filename = 'data.txt';
fid = fopen(filename, 'w');
for i=1:length(x)
    fprintf(fid, '%.6f\n', x(i));
end
fclose(fid);

更多写入方式dlmwrite等:

Matlab写入txt文件的方法_笔记大全_设计学院 (python100.com)

dlmwrite将矩阵直接按照原始形状写入txt,用逗号隔开。

不需要fopen,直接:

dlmwrite(filename,A)

11-09 16:19