当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 我又回来了!段错误。。
帖子发表于 : 2010-01-05 19:05 
头像

注册: 2006-07-27 23:12
帖子: 169
送出感谢: 0 次
接收感谢: 0 次
想做个将网页转化为txt的小工具,代码如下:
main :
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "head.h"

int main (int argc,char **argv){
   

    int i = 1;
    if(argc == 1)
        printf("plz input a file name\n");
    while( argc > 1 && i <=argc){
             
    filer(argv[i],newname(argv[i]));
    i++;
    }
   
    return 0;
}


head.h :

代码:
extern char* newname (char *str);

extern void filer(char*old_name,char *new_name);


newname.c :

代码:
#include <stdio.h>
#include <string.h>
#include "head.h"
char new[20],*p;
char* newname( char *str){
    int i,n;

    n = strlen(str);
    for(i = 0;i < 20;++i)
        new[i] = '\0';
    for (i = 0;i<n;++i)
    {
        if(str[i] == '.')
            break;
           
        new[i]=str[i];
    }
    p = strcat(new,".txt");
    return p;

}


filer.c :

代码:
#include "head.h"
#include <stdio.h>
#include <stdlib.h>
void filer (char *old_name, char *new_name){
    FILE *fp,*fp1;
    char ch;
     if((fp = fopen(old_name,"rt")) ==NULL)
    {
        printf("err!\n");
        exit (1);
    }
    if((fp1 = fopen(new_name,"wt+")) == NULL){
        printf("err!\n");
        exit(1);
    }
    while ((ch = fgetc(fp)) !=EOF){
        if(ch == '<'){
            if((ch = fgetc(fp)) == 'p')
                fputc('\n',fp1);
            while ((ch=fgetc(fp)) != '>');

        }
        if (ch == '>')
            continue;
        fputc(ch,fp1);
    }
    rewind(fp1);
    while ((ch = fgetc(fp1 )) !=EOF)
    {
        putchar(ch);
    }
    fclose(fp);
    fclose(fp1);
}


生成的程序倒是可以工作,但是在程序运行完后会显示 “段错误”,请问哪里出错了?


_________________
UBUNTU


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 我又回来了!段错误。。
帖子发表于 : 2010-01-05 19:08 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
i < argc

至少有这个


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 我又回来了!段错误。。
帖子发表于 : 2010-01-05 19:13 
头像

注册: 2006-07-27 23:12
帖子: 169
送出感谢: 0 次
接收感谢: 0 次
i <=argc 有了啊


_________________
UBUNTU


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 我又回来了!段错误。。
帖子发表于 : 2010-01-05 19:14 
头像

注册: 2006-07-27 23:12
帖子: 169
送出感谢: 0 次
接收感谢: 0 次
:em06 明白了,i<argc


_________________
UBUNTU


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 我又回来了!段错误。。
帖子发表于 : 2010-01-05 19:15 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
不能等于.. argv 的范围是 0 ~ argc-1


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 我又回来了!段错误。。
帖子发表于 : 2010-01-05 19:15 
头像

注册: 2006-07-27 23:12
帖子: 169
送出感谢: 0 次
接收感谢: 0 次
没有再提示段错误了,谢谢啊


_________________
UBUNTU


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 我又回来了!段错误。。
帖子发表于 : 2010-01-12 19:14 

注册: 2009-05-16 14:22
帖子: 198
送出感谢: 0 次
接收感谢: 0 次
:em11 learn !


_________________
missing is i missing you...


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译