簡體   English   中英

如何在文本文件中存儲函數的輸出數據

[英]How to store output data of a function in a text file

我有以下代碼

    if (StartMonitor) //StartMonitor
    {

        TotalVoltage5s += CalculatePower();
        //TotalVoltage5s += 20;
        xx123++;

        CString sad;
        m_power_edit.GetWindowText(sad);

        int num1 = _ttoi(sad);
        if(xx123 >= num1){
            if(TotalTime > 19){

                Power_Log_Chart.ClearChart();
                TotalTime = 0;
            }



            CTime tm;
            tm=CTime::GetCurrentTime();
            CString str=tm.Format("%X");
            ostringstream os;
            ostringstream os1;
            float ds= (float)atof((char *)(LPTSTR)(LPCTSTR)sad);
            os << TotalVoltage5s/ds;
            os1 << m_frequency;
            m_power_list.InsertColumn(Current_columns,"",LVCFMT_CENTER,80,0);
            m_power_list.SetItemText(0, Current_columns, str);
            m_power_list.SetItemText(1, Current_columns, os.str().c_str());
            m_power_list.SetItemText(2, Current_columns, os1.str().c_str());
            m_power_list.SetItemState(Current_columns, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);  
            m_power_list.EnsureVisible(Current_columns, FALSE);

            Power_Log_Chart.SetXYValue(TotalTime, TotalVoltage5s/ds, TotalTime, 0);
            TotalTime++;
            TotalVoltage5s = 0;
            m_frequency = 0; 
            xx123 = 0;

        }

    }
    Power_Log_Chart.Invalidate();
}
CDialog::OnTimer(nIDEvent);

}

它所做的只是簡單地執行,它獲取函數CalculatePower的輸出,並每5秒實時繪制並顯示其結果,並且在頻率和時間上都執行相同的操作。

我需要一種將數據保存在文本文件中的方法,這是我嘗試執行的操作,但是我不確定它是否會正常工作。

        SavePowerData[32780] =TotalVoltage5s; 
        SaveTimeData[32780] = TotalTime; 
         ofstream myfile;
         myfile.open ("Power Data.txt");
        for(int x=0; x<=TotalVoltage5s; x++)
        {
         myfile << SavePowerData[x];
         myfile << SaveTimeData[x]; 
        }
        myfile.close();
#include <fstream>

void append_file(std::string param1,std::string param2, std::string param3){  
  std::ofstream outfile;

  outfile.open("out.txt", std::ios_base::app);
  outfile << param1 << " " << param2<< " " << param3; 
}

您可以嘗試像這樣封裝您的方法,並在將它們放入繪圖之前每次將所需的值附加到文件中。 您還可以在每個3個參數的結尾之后使用分隔符,以便以后更容易閱讀。

謝謝Yigit,這就是我所做的,而且有效,

for (int q = 0; q<=TotalTime; q++)
{ 
Time_[q] = TotalTime;  
voltage[q] = TotalVoltage5s;
Frequency[q] = m_frequency;}
std::ofstream outfile;
 outfile.open("Power Data.csv", std::ios_base::app);
outfile<<"Total Time"<<"   "<<"Total Voltage 5 sec"<<"   "<<"Frequency"<<endl; 
for(int k = 0; k<TotalTime; k++){outfile<<voltage[k]<<", "<<Time_[k]<<", "<<Frequency[k]<<endl;} 
outfile.close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM