01BIM社区

 找回密码
 立即注册

扫一扫,访问微社区

查看: 2051|回复: 0

_tfopen_s和fopen_s的区别

[复制链接]

156

主题

647

帖子

2540

积分

金牌会员

Rank: 6Rank: 6

积分
2540
发表于 2015-10-28 08:33:03 | 显示全部楼层 |阅读模式
本帖最后由 tzbm123456 于 2015-10-28 08:36 编辑

使用_tfopen_s和fopen_s时,稍不注意就会出现乱码问题;

_tfopen_s函数对应的CCS设置为UNICODE, UTF-8, andUTF-16LE均可打开编码为Unicode, UTF-8和Unicode big endian的.txt文件,不可打开编码为ANSI的.txt文件

void CFileView::OnWrite() {         // TODO: Add your command handler code here         FILE *pFile = 0;         if (!_tfopen_s(&pFile, TEXT("111.txt"), TEXT("w,ccs=UNICODE")))                //写入txt文件编码默认为ANSI         {                 fwrite(TEXT("Today is the first day of NBA final game!"), 1,                         sizeof(TEXT("Today is the first day of NBA final game!")), pFile);         }         //fseek(pFile, 0, SEEK_CUR);         //fwrite("Today is the first day of NBA final game!", 1,                         //sizeof("Today is the first day of NBA final game!")+2, pFile);         fclose(pFile);         //fflush(pFile); }   void CFileView::OnOpen() {         // TODO: Add your command handler code here         FILE *pFile;         if (!_tfopen_s(&pFile, TEXT("111.txt"), TEXT("r,ccs=UNICODE")))                //打开文件         {                 TCHAR str[100] = {0};                 //memset(str, '', 100);                 fread(str, 1, sizeof(str), pFile);                 MessageBox(str);                 fclose(pFile);         } }

fopen_s函数可以打开ANSI,Unicode,UTF-8, Unicode big endian编码的.txt文件,但fwrite要加上TEXT();且操作完成后,.txt文件都保存为Unicode编码的。

void CFileView::OnWrite()</span>
{  // TODO: Add your command handler code here            FILE *pFile = 0;         
   if (!fopen_s(&pFile, ("1.txt"), ("w")))                //写入txt文件编码默认为ANSI         
  {   
     write(("Today is the first day of NBA final game!"), 1,sizeof(("Today is the first day of NBA final game!")), pFile);
  }         //fseek(pFile, 0, SEEK_CUR);         //fwrite("Today is the first day of NBA final game!", 1,                         //sizeof("Today is the first day of NBA final game!")+2, pFile);         fclose(pFile);         //fflush(pFile); }   void CFileView::OnOpen() {         // TODO: Add your command handler code here         FILE *pFile;         if (!fopen_s(&pFile, ("1.txt"), ("r")))                //打开文件         {                 TCHAR str[100] = {0};                 //memset(str, '', 100);                 fread(str, 1, sizeof(str), pFile);                 MessageBox(str);                 fclose(pFile);         } }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|01BIM社区 - 最专业的BIM技术交流平台 ( 渝ICP备15000873号 )

GMT+8, 2024-5-19 19:29 , Processed in 0.344790 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表