求助:字符串转换问题

j3cxl 2006-10-20 05:51:27
在一个文本文件里存了几个数字,比喻说:16 97 32 40 25

怎么样打开文件,并把这些数字取出来进行排序呀? 我知道在文本文件里表面上看是一个数字一个数

字的,实质上他们是字符串?怎么 取获取他们,也就是说从从文件里读出来时也是这些数字呢 ,然

后进行比较,排序呢?
...全文
100 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
benxudong 2006-10-20
可以一行一行读取,
CStdioFile file;
CString strText;
CStringArray strArr;
if(file.Open(fileName, CFile::modeReadWrite | CFile::typeText))
{
int nSize = file.GetLength();
file.SeekToBegin();
while(file.ReadString(strText))
{
strArr.Add(strText);
}
file.Close();
}
现在比如说strArr[0] == "16 97 32 40 25 ";
然后进行查找字符,以空格查找空格' '记录位置
CString strCur = strArr[0];
while(strCur.Find(' '))
{
int nPos = strCur .Find(' ');
CString strCur = strCur.Left(nPos);
double value = atof(strCur);//此时就可以获取值了
}
回复
benxudong 2006-10-20
pBuffer[k] = strString[k] ; //这里出错了,怎么回事?
这里strString是字符串,不是数组阿
回复
j3cxl 2006-10-20
CFile file ;
if(!file.Open(strFileName,CFile::modeReadWrite|CFile::typeBinary, NULL))
{
MessageBox("Open文件失败") ;
return ;
}
CString strString ;
int ilength = file.GetLength() ;
BYTE *pBuffer = new BYTE [ilength + 1] ;
for (int k = 0 ; k < ilength ; k ++)
{
pBuffer[k] = strString[k] ; //这里出错了,怎么回事?
}

我是想读入内存,将一个一个的字符转换成ASCII码值,再将数字取出来,下面该怎么做?
回复
neosu 2006-10-20
FILE * fp = fopen (文件名, "r");
if(fp == NULL)
return ; //出错
int n1, n2.....;
fscanf(fp, "%d %d %d %d %d", &n1, &n2, .....);


fclose(fp);

//省略的部分自己补充吧.
回复
j3cxl 2006-10-20
具体做法?举个例子
回复
neosu 2006-10-20
int n1, n2.....;
fscanf(fp, "%d %d %d %d %d", &n1, .....);
回复
zhyaaa123 2006-10-20
读出来后减去'0'的ASCII码值
回复
相关推荐
发帖
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2006-10-20 05:51
社区公告
暂无公告