文件的读取以及对取得的内容进行分割

一,写文件
int WriteFile()
{
FILE *fp = NULL;
errno_t err = 0;
TCHAR szBuffer[256] = _T(“”);
// 打开文件
err = _tfopen_s(&fp,_T(“C:\temp\WriteMessage.txt”), _T(“w”));
// 文件打开失败(如:文件正处于打开状态)
if (err != 0)
{
cout<<“Write:file open failed.”<<endl;
return 1;
}
// 向文件中写入数据
wsprintf(szBuffer,_T(“1:Number1\n”));
_fputts(szBuffer, fp);

//关闭
if (fp)
{
    fclose(fp);
}

return 0;

}

二,读文件以及分割
int ReadFile()
{
FILE *fp = NULL;
errno_t err = 0;
char szBuffer[256] = {0};

// 打开文件
err = _tfopen_s(&fp,_T("C:\\temp\\WriteMessage.txt"), _T("r"));

// 文件打开失败
if (err != 0)
{
    cout<<"Read:file open failed."<<endl;
    return 1;
}

// 逐行读取文件
while(!feof(fp))
{
    if(NULL == fgets(szBuffer, sizeof(szBuffer), fp))
    {
        continue;
    }
    if(0 == strcmp(szBuffer, "\n"))
    {
        continue;
    }
    cout<<szBuffer<<endl;
}

// 关闭
if(fp)
{
    err = fclose(fp);
}

//分割读取信息
TCHAR* token        = NULL;
TCHAR* next_token   = NULL;

// 如果读到冒号就分割
token = _tcstok_s(szBuffer, _T(":"), &next_token);
cout<<token<<endl;
token = _tcstok_s( NULL, _T(","), &next_token);
cout<<token<<endl;


return 0;

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注