记录问题-vs 2013编程
来源:互联网 发布:mac截屏软件免费下载 编辑:程序博客网 时间:2024/05/01 08:08
最近做项目,编程出了点小问题,记录下,方便以后温故知新
1 fopen fopen_s fscanf fscanf_s
FILE *f; fopen_s(&f,"F……", "r"); if(f == NULL) cout << "file open erro" << endl; else { for (int i = 0; i < m; i++) { fscanf_s(f, "%lf", &x[i],sizeof(double)); } }
问题出在fopen fopen_s, fscanf fscanf_s以及%lf上
首先注意前面定义的x数据类型是double,用%lf,指定写入长度。
fopen:
FILE * fopen(const char * path,const char * mode);接收两个实参
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。
示例程序源码:
FILE *cfPtr;if((cfPtr = fopen("test.dat","w")) == NULL) //若cfPtr = NULL,即文件未成功打开,函数返回0,否则返回1 return 0;else return 1;
fopen_s:
fopen_s( FILE** pFile, const char *filename, const char *mode );
pFile:文件指针将接收到打开的文件指针指向的指针。filename:文件名。mode:允许的访问类型。
返回值:如果成功返回0,失败则返回相应的错误代码。
多了一个指定类型的参数。
2. 中断, 有未经处理的异常
for (int i = 0, j = 0; i < lenx || j < lenx / 2.0; i++,j++) { MPpn[i] = (fpwn[i].real * fpwn[i].real + fpwn[i].image * fpwn[i].image) / lenx; Y[j] = MPpn[i]; }
这里出错是因为后面j++没写,没有递增,判断没有意义((lll¬ω¬))
mat文件变成txt文件
一、语法及功能描述
dlmwrite(filename, M)
将数组M写入到ASCII格式的文件中,文件名为filename,每个元素之间默认以‘,’隔开。如果filename已经存在,则该函数将覆盖。
dlmwrite(filename, M, ‘-append’)
将数据添加到已经存在的filename文件后面。
dlmwrite(filename, M, delimiter)
将数据M写入到filename文件中,并以特殊字符delimiter将每个元素隔开。
二、参数说明
filenane:写入文件名;
M:需要保存的数据;
delimiter:两个元素之间的分隔符;
precision:数据精度;
newline:行终止符,‘pc’表示使用回车换行符,‘unix’表示换行符。
三、示例
1、写入数据时以逗号分隔元素
生成一个样本矩阵M
M = magic(3);
使用默认的分隔符‘,’将矩阵M写入到文件myFile.txt中
dlwrite(‘myFile.txt’, M)
查看文件中的数据
type(‘myFile.txt’)
8 1 6
3 5 7
4 9 2
2、以Tab间隔分隔元素并保存指定精度
M = magic(3)*pi
dlmwrite(‘myFile.txt’, M, ‘delimiter’, ‘\t’, ‘precision’, 3)
type(‘myFile.txt’)
25.1 3.14 18.8
9.42 15.7 22
12.6 28.3 6.28
3、在文件后添加数据
M = magic(5);
N = magic(3);
dlmwrite(‘myFile.txt’, M, ‘delimiter’, ’ ‘);
dlmwrite(‘myFile.txt’, N, ‘-append’, ‘delimiter’, ’ ‘, ‘roffset’, 1)
type(‘myFile.txt’)
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
8 1 6
3 5 7
4 9 2
4、以指定精度写入到文件中
M = magic(3);
dlmwrite(‘myFile.txt’, M, ‘precision’, ‘%.6f’)
type(‘myFile.txt’)
8.000000,1.000000,6.000000
3.000000,5.000000,7.000000
4.000000,9.000000,2.000000
5、指定行终止符
M = magic(3);
dlmwrite(‘myFile.txt’, M, ‘delimiter’, ’ ‘,’newline’,’unix’)
type(‘myFile.txt’)
就这一个函数,完美解决问题,另存为txt的方式不可取。
- 记录问题-vs 2013编程
- vs 编程问题记录
- vs程序开发问题记录
- VC6 编程问题记录
- 编程问题记录
- QT编程问题记录
- 编程问题记录
- MFC编程问题记录
- 工作记录:VS.NET2008配置问题
- vs程序开发问题记录(二)
- VS水晶报表升级问题记录
- VS C++问题记录之sdf文件
- Matlab2013a和VS Express 2013 for Desktop混合编程问题
- Android-编程小问题记录
- STM32库编程问题记录
- python编程问题记录集
- C++ VS混合编程--VS执行崩溃问题
- vs 2008编程遇到的小问题
- 关于生命周期
- JAVA集合之---LinkedList、ArrayList与Vector
- Android点击EditText文本框之外任何地方隐藏键盘的解决办法
- 一天写多少行代码才算是好程序员?
- vue2.0使用weui.js的uploader组件上传图片
- 记录问题-vs 2013编程
- JAVA的四种引用
- C_day06 c访问java属性和方法
- HTML字符转义与反转义
- 【帝国CMS】如何用灵动标签调用副表字段内容?
- Spring Boot中使用Redis数据库
- 网络编程的一些问题
- Android Studio项目将Module依赖(lib)转成jar包
- linux添加删除swap分区文件