用VC在MFC里用CFile方式读txt文件,忽略空格和换行,只读取每一行里的一个数并转成int型该怎么办?求答!
每一行里眼读的数之前可能有空格,后面也可能有,如“34”,将34以int型读出,如果文件数字个数小于int数组个数,算出文件数字个数。...
每一行里眼读的数之前可能有空格,后面也可能有,如“ 34 ”,将34以int型读出,如果文件数字个数小于int数组个数,算出文件数字个数。
展开
1个回答
展开全部
使用CString类即可
CString szTmp = “ 34 ”;
szTmp.trim();//这个的功能是把字符串左右两边的空格去掉
szTmp.Replace(" ", "");//这个的功能是把字符串的空格消掉
int n = szTmp.GetLength();//这个就是把空格去掉后,字符串的长度了
int n = atoi(szTmp);//这个是把字符串变成数字的
后面的就看你情况使用了。CString类是一个很强大的字符串类,感觉可以满足你了。
CString szTmp = “ 34 ”;
szTmp.trim();//这个的功能是把字符串左右两边的空格去掉
szTmp.Replace(" ", "");//这个的功能是把字符串的空格消掉
int n = szTmp.GetLength();//这个就是把空格去掉后,字符串的长度了
int n = atoi(szTmp);//这个是把字符串变成数字的
后面的就看你情况使用了。CString类是一个很强大的字符串类,感觉可以满足你了。
追问
嗯,谢谢。请问你知道该怎么从文件里把数据一行一行的读出来成为CString的吗?我本来想读成char的,但都是乱七八糟的一堆数字 ( ̄△ ̄;)
追答
当然可以啦。
#include
//#include
CAtlFile h_file;
HRESULT hr = h_file.Create("c:\\123.txt", GENERIC_ALL, FILE_SHARE_WRITE|FILE_SHARE_READ, OPEN_EXISTING);//打开文件
if (SUCCEEDED(hr))
{
ULONGLONG uLen = 0;
h_file.GetSize(uLen);//获取文件内容的大小
char* str = new char[uLen+1];
memset(str, 0, uLen+1);//初始化数据
h_file.Read( str, uLen+1);//读取内容
h_file.Close();//文件关闭
CString szTmp;
szTmp = str;//这个不就是内容了么
delete str;
}
看你样子应该是新学的,那么应该不懂宽字符与多字符的吧?
一般就是使用多字符的格式的了。
CString其实就是一个char封装类。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询