| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 614 人关注过本帖
标题:有个问题请教一下
只看楼主 加入收藏
cwzebras
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-2-7
结帖率:33.33%
收藏
 问题点数:0 回复次数:9 
有个问题请教一下
程序代码:
  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <string.h>
  4 #include <math.h>
  5 #include <malloc.h>
  6
  7 #define MAX_LINE_SIZE 511
  8 void location1(char *fin, int *len);
  9

 10 int main()

 11 {

 12     FILE *fpbatch = NULL;

 13     fpbatch = fopen("syn_data2000.txt", "r");

 14     int i, j, k, length;

 15     char *filename ;

 16     filename = (char*)calloc(512, sizeof(char));

 17

 18     while(fgets(filename, MAX_LINE_SIZE, fpbatch) != NULL)

 19     {

 20         length = strlen(filename);

 21         fprintf(stdout, "%d\t%s",length, filename);

 22         location1(filename, &length);

 23     } 

 25 } 

 26

 27 void location1(char *fin, int *len)

 28 {

 29     FILE *fp;

 30     fp = fopen(fin, "r");

 31   

 32     if(fp == NULL)

 33     {

 34         fprintf(stdout, "ierr\n");

 35         exit(1);

 36     } 

 37     fclose(fp);

 38 }  

主要的目的是从一个文本文件中读入字符串,并且大概以这个字符串为名的另一个文件。
location1函数中的文件指针一直是空的,对应的文件和程序放在一个文件夹里的

搜索更多相关主题的帖子: include 
2014-07-21 17:46
cwzebras
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-2-7
收藏
得分:0 
有没有人知道这是什么错误?
2014-07-21 18:31
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
路径问题??

DO IT YOURSELF !
2014-07-21 20:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你的代码都知道检查filename的值,为什么不把结果画面截出来让人看?

授人以渔,不授人以鱼。
2014-07-21 21:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
顺便说一下,在Windows系统下,512Byte的文件名长度是多余的。

授人以渔,不授人以鱼。
2014-07-21 21:56
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
我猜到啥问题了,但还是希望楼主求助时能把问题描述清楚

总有那身价贱的人给作业贴回复完整的代码
2014-07-21 22:46
cwzebras
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-2-7
收藏
得分:0 
回复 6 楼 embed_xuel
是不是字符串最后一个字符的问题?
就是希望能够从一个文本文件里面读取出某一行,并且接下来打开一个以这个字符串命名的文件,但是无法用 r 模式打开后面这个文件。我是在linux下运行的,刚刚用 w 模式打开文件发现后面多了一个字符,所以现在在子函数中添加了几句
程序代码:
 34     char fnm[512];

 35 

 36     strncpy(fnm, fin, *len-1);

 37     fp = fopen(fnm, "r");

这样好像可以了,但是还是不太清楚具体是多了那个字符?
不知道这样说是否清楚,希望能够得到解答,谢谢!
2014-07-21 23:51
cwzebras
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-2-7
收藏
得分:0 
回复 5 楼 TonyDeng
我是在linux下用的,512只是随便给的一个长度
2014-07-21 23:52
cwzebras
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-2-7
收藏
得分:0 
回复 4 楼 TonyDeng
结果就是 fp 指针是空,输出 err
2014-07-21 23:53
cwzebras
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-2-7
收藏
得分:0 
回复 3 楼 wp231957
好像是最后多了一个字符,去掉最后好像可以了,但是目前还是不太清楚具体的原因,还在找
2014-07-21 23:54
快速回复:有个问题请教一下
数据加载中...
 
   



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

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