在Qt中进行txt文件输出时遇见的输出数据混乱现象与自我解决方法

这里我们来看下下面这个程序,这个程序的主要功能是为了生成一个文件,文件的内容是将自己定义的freenode文件的自动递增的nodeNumber的这个数值进行输出,程序与效果如下。

freenode *p1 = new freenode(1,0,"volt");
QFile Vot_S("Vot_S.txt");
if(Vot_S.open(QFile::Append))
{
QTextStream outv1(&Vot_S);
outv1<<p1->nodeNumber<<'\t';
}
freenode *p2 = new freenode(1,0.0,"volt");
QTextStream outv2(&Vot_S);
outv2<<p2->nodeNumber<<'\t';
freenode *p3 = new freenode(1,0.0,"cur");
QTextStream outv3(&Vot_S);
outv3<<p3->nodeNumber<<'\t';

这里应该的效果是生成1 2 3 这样子的txt文件效果,结果变成了1 3 2 这样的效果。

nodenumber这个参数是当生成一个freenode对象时候,自动进行递增。
这里按照道理来说,程序的输出应该与定义的时候相同,按照定义的顺序,输出为1 2 3 ,可效果却不是这样子,在此提出疑问,希望有人可以解答。

在这里,我提出了自己的改进程序,进行赋值操作,最后统一输出,来解决这个问题,程序如下:

freenode *p1 = new freenode(1,0,"volt");
int a1 = p1->nodeNumber;
freenode *p2 = new freenode(1,0.0,"volt");
int a2 = p2->nodeNumber;
freenode *p3 = new freenode(1,0.0,"cur");
int a3 = p3->nodeNumber;
QFile Vot_S("Vot_S.txt");
if(Vot_S.open(QFile::Append))
{
QTextStream outvolt(&Vot_S);
outvolt<<a1<<'\t'<<a2<<'\t'<<a3<<endl;
}

这里的程序运行效果如下,所要的结果与自己想象的结果一样。

下面的是自己设置的电压值。

以上,希望各位提出建议并感谢各位参考。

posted @ 2021-03-31 17:00  已经被探测的小行星  阅读(357)  评论(0)    收藏  举报