其實,有什麼問題你的代碼,如果你的代碼是正確的,那麼你的編程語句
File = (("%S, %S\n\n"), buffer0, buffer1);
只有一個意思是,先創建文件的字符數組與buffer0與緩衝器1替換所以最後你會得到buffer1作爲最終的文件值。
關於\ n不能正常工作,因爲它應該是這樣的,\ r \ n
所以你的最終方案可能是什麼樣子,
// TODO: Add your control notification handler code here
CString m_strPathName;
char* File;
TCHAR szFilters[] =
_T ("Text files (*.txt)¦*.txt¦All files (*.*)¦*.*¦¦");
CFileDialog dlg (FALSE, _T ("txt"), _T ("*.txt"),
OFN_OVERWRITEPROMPT, szFilters);
if (dlg.DoModal() == IDOK)
m_strPathName = dlg.GetPathName();
CFile DataFile(m_strPathName, CFile::modeReadWrite | CFile::modeCreate);
char buffer0[100] = "TEST0";
char buffer1[100] = "TEST1";
int GetLength;
File = new char[strlen(buffer0)+strlen(buffer1)+2];
for (int i=0; i<2; i++)
{
strcpy(File,buffer0);
strcat(File,buffer1);
strcat(File,"\r\n");
GetLength = strlen(File);
DataFile.Write(File, GetLength);
}
DataFile.Close();
MessageBox(_T("OK"));
CDialogEx::OnOK();
}
[編輯]
// TODO: Add your control notification handler code here
CString m_strPathName;
char* File;
TCHAR szFilters[] =
_T ("Text files (*.txt)¦*.txt¦All files (*.*)¦*.*¦¦");
CFileDialog dlg (FALSE, _T ("txt"), _T ("*.txt"),
OFN_OVERWRITEPROMPT, szFilters);
if (dlg.DoModal() == IDOK)
m_strPathName = dlg.GetPathName();
CFile DataFile(m_strPathName, CFile::modeReadWrite | CFile::modeCreate);
char buffer0[100] = "TEST0";
char buffer1[100] = "TEST1";
int GetLength;
File = new char[strlen(buffer0)+strlen(buffer1)+2];
for (int i=0; i<2; i++)
{
double doublevalue;
doublevalue = 1035.25414;
sprintf(File,"%s,%s,%f\r\n", buffer0, buffer1,doublevalue); //Dumping data string and double data saparated with comma
GetLength = strlen(File);
DataFile.Write(File, GetLength);
sprintf(File,"%f>>>%s>>>%s\r\n", doublevalue,buffer1,buffer0); //Dumping data double and string data saparated with >>
GetLength = strlen(File);
DataFile.Write(File, GetLength);
}
DataFile.Close();
MessageBox(_T("OK"));
謝謝,代碼有效。但是,如果我想添加第三個值到'File = newchar .....'這是一個'double',我該怎麼做呢?像>> double,buffer0,buffer1 <<還有,如何添加一個逗號來分隔txt文件中的兩個緩衝區?像>> TEST0,TEST1' <<等等。 – Ashton
@Ashton編輯後請看到更新後的代碼,你會得到你需要的。 –
非常感謝!但是,對於雙重我不應該使用'%lf'? – Ashton