| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1395 人关注过本帖
标题:sprintf 与 fopen结合问题
只看楼主 加入收藏
gtrmao
Rank: 2
等 级:论坛游民
帖 子:38
专家分:32
注 册:2011-10-24
结帖率:75%
收藏
已结贴  问题点数:40 回复次数:7 
sprintf 与 fopen结合问题
$struct file_info{
    char file_name[9];
    int col_num;
}file;
sprintf(filename,"./file/20111103/%s_20111104_0001.dat",file.file_name);
fp=fopen(filename,"r");
实际文件路径/home/informix/file/2011103
我是想用游标,查看数据库,查到的文件名,并将其打开。
程序编译没错,运行时,到了打开文件时总是无法打开。求高手指点。(感觉应该是sprintf中file。file_name处有问题。但不知拿错了)。
望高手点播~
搜索更多相关主题的帖子: file 数据库 
2011-11-14 12:37
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
不能打开的可能性有很多,先把filename输出看看吧,确认路径和文件名有没有错。

授人以渔,不授人以鱼。
2011-11-14 12:46
gtrmao
Rank: 2
等 级:论坛游民
帖 子:38
专家分:32
注 册:2011-10-24
收藏
得分:0 
输出的filename是
./file/20111103/ods_1   _20111104_0001.dat
则么会这样多了几个空格。咋办
2011-11-14 12:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
显然是你数据库中的记录带了空格,先删空格。前提:审核一下真实的文件名是不是真可能有空格,如果有,又是另外不同的处理办法。长文件名是允许中间夹杂空格的,不能乱删。你定义的filename[9],显然是DOS旧式短文件名,8个字符的,这个格式不允许空格。

[ 本帖最后由 TonyDeng 于 2011-11-14 13:01 编辑 ]

授人以渔,不授人以鱼。
2011-11-14 12:56
gtrmao
Rank: 2
等 级:论坛游民
帖 子:38
专家分:32
注 册:2011-10-24
收藏
得分:0 
咋删呢?高手,在帮下
2011-11-14 13:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
字符串删除前后空白,学生习题很多都做过,你就当练习一下呗。你要注意:稳妥的办法是前后都要删,数据库录入的数据不一定对齐的。

[ 本帖最后由 TonyDeng 于 2011-11-14 13:11 编辑 ]

授人以渔,不授人以鱼。
2011-11-14 13:07
gtrmao
Rank: 2
等 级:论坛游民
帖 子:38
专家分:32
注 册:2011-10-24
收藏
得分:0 
好吧
2011-11-14 13:18
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:5 
也可以使用strncpy合并两个字符串。

我们都在路上。。。。。
2011-11-14 13:18
快速回复:sprintf 与 fopen结合问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012671 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved