求助:字符串转换问题

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

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

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

后进行比较,排序呢?
...全文
121 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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码值

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧