游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2372|回复: 7

用算法返回文件路径失败~求助看看为什么

[复制链接]

26

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2006-9-18 04:02:00 | 显示全部楼层 |阅读模式
已知 fileName:
char *fileName="data//img//1.gif"
怎么截取 ”data//img//“ ?用(char *)返回

我不知道用什么函数,于是写了个算法(如下),发现输出的时候乱码

完整代码如下:

#include <stdio.h>
#include <iostream.h>
#include <string.h>
char * getFileAir(char *str)
{
char appdir[256]="";
int len,n;

len=strlen(str);

//获取文件名长度(从字符串最后一个字符开始计算,直至遇到“/”或“\"为止)
n=0;
while((str[(len-1)-n] !='\/')&&(str[(len-1)-n] !='\\'))
n++;

//返回路径
return strncat( appdir,str,len-n);

}

void main(void)
{
  char *dir;
  dir=getFileAir("data\img\1.gif");
  cout<<dir<<endl;
}  [em10]

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-9-18 09:39:00 | 显示全部楼层

Re:用算法返回文件路径失败~求助看看为什么

while((str[(len-1)-n] !='/')&&(str[(len-1)-n] !='\\'))

26

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
 楼主| 发表于 2006-9-18 10:47:00 | 显示全部楼层

Re:用算法返回文件路径失败~求助看看为什么

打印还是出错,结果:
d


€

30

主题

422

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2006-9-18 12:13:00 | 显示全部楼层

Re:用算法返回文件路径失败~求助看看为什么

char * getFileAir(char *str)
{
char appdir[256]="";
// ...
return strncat( appdir,str,len-n); // 最后返回的地址appdir是一个临时变量,函数返回后失效
}

26

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
 楼主| 发表于 2006-9-18 13:17:00 | 显示全部楼层

Re:用算法返回文件路径失败~求助看看为什么

哦!
这样阿~
不过,这函数还是能用,我用它得到路径并读入文件的时候成功。就是打印字符的时候乱码~

0

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2006-9-20 02:07:00 | 显示全部楼层

Re:用算法返回文件路径失败~求助看看为什么

//?? \\?? 你写的什么乱七八糟的哦?

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2006-9-20 14:21:00 | 显示全部楼层

Re:用算法返回文件路径失败~求助看看为什么

using namespace std;

string getFileAir(const string str)
{
        string::size_type pos = str.find_last_of('\\');

        if(pos == string::npos)
        {
                pos = str.find_last_of('//');
        }

        return str.substr(0, pos + 1);
}

30

主题

398

帖子

403

积分

中级会员

Rank: 3Rank: 3

积分
403
QQ
发表于 2006-9-21 09:53:00 | 显示全部楼层

Re:用算法返回文件路径失败~求助看看为什么

楼主应该好好研究一下C/C++
\需要转义符 /不需要
"data\\img\\1.gif" 正确
"data\img\1.gif" 错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 11:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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