cstdiofile(VC++求助!!CStdioFile按行读文件出错)
本文目录
- VC++求助!!CStdioFile按行读文件出错
- Cstdiofile无法逐行读取
- 如何使用CStdioFile:ReadString来读文件
- CStdioFile怎么实现删除txt文件的某一行信息,修改某一行信息
- 在VS2010中,如何用CStdioFile写入中文,之前写入的都是乱码,求解答,在线等!!!
- 怎样用CStdioFile按行读取数据,读取一行文本文件
- error C2664: “CStdioFile::CStdioFile(FILE *)”
- CStdioFile 读取txt中的中文 显示为乱码
- 使用cstdiofile类,编译出错误,说没有定义构造拷贝函数,如何解决
- CStdioFile打开绝对路径名的问题
VC++求助!!CStdioFile按行读文件出错
目测上述代码没有发现什么问题,建议按照如下方式来调试。
在while循环内部的“strText += szLine;”打上断点,单步执行时,监视strText的值。
/////////////////////////////////////////////////////////////////////
刚才试验了一下,在一个按钮的单击响应函数里面写了如下代码:
void CFileTestDlg::OnTestfile()
{
// TODO: Add your control notification handler code here
CString strText = "";
CString szLine = "";
//打开文件
CStdioFile file;
if (!*****("*****",CFile::modeRead))
{
AfxMessageBox("无法打开文件!");
return;
}
//逐行读取字符串
while( *****( szLine ) )
{
strText += szLine;
}
*****();
AfxMessageBox(strText);
}
/////////////////////////////////////////////////////////////////////
结果:AfxMessageBox能够读出文本中的内容。
至于你为什么读不出内容,我想,可能有以下几个原因。
1.代码中缺少是否打开文件的判断,有可能打开文件失败。
2.注意此处待读文件的路径为相对路径,txt文件需要放在工程目录下面。
请设置断点后,单步调试确认。
Cstdiofile无法逐行读取
你*****();是什么意思?
这个是Flush的描述:Forces any data remaining in the file buffer to be written to the file
将缓冲区的内容写入到文件中。
你这里读文件,调用个Flush是何用意?
去掉试试
如何使用CStdioFile:ReadString来读文件
一数据文件一行一条记录,我用*****()一次读一行,并对读取的数据做一些处理;
请问:while(文件还没到结尾)
{
*****();
...
}
while()中不用另加判断条件了,因为CStdioFile::ReadString()本身就是判断标志,若没有了(文件到头)返回NULL,因此:while(*****(s)){}就可.
假设你已有了名为*****的文件在你的工程目录下:
{
CStdioFile file;
CString sss;
char ccc;
DWORD o=0;
int ol=0;
*****("*****",CFile::modeRead);
while(*****(sss))
{
ol++;
if(ol》1)//读两次就不读了.
break;
}
o=*****();//记录上次的结果(读到哪了)
.................
*****(o,0);//接着上回读
while(*****(sss))
{
strcpy(ccc,sss);
AfxMessageBox(ccc);
}
}
CStdioFile怎么实现删除txt文件的某一行信息,修改某一行信息
怎么实现删除txt文件的某一行信息,修改某一行信息
#include
"*****"
int _tmain(int argc, TCHAR* argv, TCHAR*
envp)
{
try
{
CStdioFile
file;
LPCTSTR pszFile =
_T("F:\\*****");
*****(pszFile,
CFile::modeRead);
CString
strText;
DWORD dwPos =
0;
LPCTSTR pszSrc =
_T("111111");
LPCTSTR pszDes
=
_T("222222\n");
while(*****(strText))
{
if(strText
==
pszSrc)
{
dwPos = (DWORD)*****() - (_tcslen(pszSrc) +
_tcslen(_T("\r\n")));
break;
}
}
*****();
*****(pszFile,
CFile::modeWrite);
*****(dwPos,
CFile::begin);
*****(pszDes);
*****();
}
catch(CException* e)
{
e-》ReportError();
e-》Delete();
}
return 0;
}
// *****
(ANSI文本文件)
aaaaaa
111111
333333
444444
程序运行之后文件内容
aaaaaa
222222
333333
444444
在VS2010中,如何用CStdioFile写入中文,之前写入的都是乱码,求解答,在线等!!!
char* old_locale=_strdup(setlocale(LC_CTYPE,NULL));
setlocale(LC_CTYPE,"chs");
//...
setlocale(LC_CTYPE,old_locale);
****(old_locale);
怎样用CStdioFile按行读取数据,读取一行文本文件
CStdioFile file;
if (*****("*****", CFile::modeRead)) return;
CString strLine;
while (*****(strLine))
{
//strLine就是一行文本,自己处理吧
}
*****();
error C2664: “CStdioFile::CStdioFile(FILE *)”
编译器已经告诉你了啊:
CStdioFile::CStdioFile(FILE *)需要的参数是FILE*,而不是c***t wchar_t ,你要传FILE *类型的参数给他~
CStdioFile 读取txt中的中文 显示为乱码
一般来说,这是因为你的txt文件编码格式导致的,如果mfc已经设置为多字节编码,那么txt一般根据你的操作系统设置为gb2312读出来的可能性比较大
我找了找,CStdioFile似乎不能显示指定编码
使用cstdiofile类,编译出错误,说没有定义构造拷贝函数,如何解决
用引用试试 void MakeTxt(CString strTxtFileName,CStdioFile& ResultFile,int iRepeat,int iNumFrames)
CStdioFile打开绝对路径名的问题
第一个问题 自己添加 很简单 把\全替换成\\
第二个问题 你这个明显全是窄 转换
//用wcstombs_s函数
//wchar_t --》 char 的例子
#include "*****"
#include "*****"
int _tmain(int argc, _TCHAR* argv)
{
setlocale(LC_ALL,"chs"); //set to chinses-simplified
wchar_t* ws = L"汉字";
wprintf( L"ws = %s\n", ws );
c***t size_t MAXCHAR = 100;
char* pmbc = (char *) malloc( MAXCHAR );
size_t i;
if (wcstombs_s(&i, pmbc, MAXCHAR, ws, MAXCHAR ) != 0){
printf( " error!\n" );
}else{
printf( " Multibyte character: %s\n", pmbc );
}
if(pmbc)
****(pmbc);
return 0;
}
或者这个函数
WideCharToMultiByte
更多文章:
c语言随机产生0 10的整数(c语言:随机产生的100个0到10之间的整数,设计程序,统计0到10的个数)
2026年4月30日 12:40
matlab的imwrite函数(matlab如何用out输出图像)
2026年4月30日 12:20
insert all(在Oracle中,通过一个INSERT ALL语句批量插入数据)
2026年4月30日 12:00
oracle建库步骤(在命令行如何创建oracle实例与数据库,需要详细点教程,谢谢)
2026年4月30日 11:40
cstdiofile(VC++求助!!CStdioFile按行读文件出错)
2026年4月30日 11:00
java中接口是什么(在java中,什么事接口,接口的特点是什么)
2026年4月30日 10:40
html怎么让图片居中在div中(如何让图片在div中居中显示)
2026年4月30日 10:00


