linux下如何读取windows下生成的txt文件

最近用DSP计算卷积算法,使用的系数是由PC机生成的卷积系数保存在txt文件内,之前使用的生成的TXT文件都是带制表位的文本文件,所以linux能够正常读取,后来由同事提供的系数不能被直接读取,如果通过fscanf使用while循环读取的话,感觉进入了死循环,其实是两个TXT文件格式不一致,可以在你的测试平台下通过vi的方式查看就可以明白其中的问题,可以正常读取的会是类似于0.00003242^M 样式,
而不正常的是会在每个数字前面加上^@,这就造成了数据读取错误,此时需要在windows下将TXT文件另存为成为带制表位的txt文件(带回车和换行符)即可
顺便附一段读取txt文件代码

#include <stdio.h>
#include <stdlib.h>
FILE fp;
float coefs[4096];
int i = 0;
fp = fopen("fircoef.txt","r")
	if(fp == NULL){
    
    
		printf("file open error!")
		return -1;
	}
while(fscanf(fp, "%f\n", &coefs[i]) != EOF){
    
    
	i++;
}
fclose(fp);

猜你喜欢

转载自blog.csdn.net/coinv2014/article/details/106564625