| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 402 人关注过本帖
标题:看看这个程序有声么问题,运行时不能打开文件为什么?谢谢
只看楼主 加入收藏
ghc123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-4-15
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:2 
看看这个程序有声么问题,运行时不能打开文件为什么?谢谢
//在文件中查找字符串位置。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>

#define ERROR 0
#define GOALSTR "abc"

typedef struct
{
    int row;//目标串行序
    int line;//目标串列序
    int lastrow;//上一行字符数
}*locate;

int next[3];

void get_next(char T[],int next[])
{//模式串求next[j]数组参数:模式串名,整型数组。
    int i,j;
    i=1;
    j=0;
    next[1]=0;
    while(i<T[0]&&j<T[0])
    {
        if(j==0||T[i]==T[j])
        {
            ++i;
            ++j;
            next[i]=j;
        }
        else j=next[j];
    }
}//get_next

locate KMP(FILE *fp,char T[])
{//KMP算法返回存储模式串在文件中位置的指针,参数:文件指针,模式串。
    int j=0;
    char ch;
    locate l;
   
    ch=fgetc(fp);//从文件中读取一个字符。
   
    l=(locate)malloc(sizeof(6));
    l->row=l->line=1;
    l->lastrow=0;//定义及初始化位置参数。

    while(j<T[0]&&ch!=-1L)
    {
        if(ch=='\n')
        {
            ++l->row;
            l->lastrow=l->line-1;
            ch=fgetc(fp);
            l->line=1;
        }
        
        if(j==0||T[j]==ch)
        {
            ++j;
            ch=fgetc(fp);
            ++l->line;
        }
        else
            j=next[j];
    }

    if(j>T[0])
    {
        if(l->line<T[0]+1)
        {
            --l->row;
            l->line=l->line-T[0]-1+l->lastrow;
        }
        else
            l->line=l->line-T[0]-1;
    }
    else
    {
        printf("no string can match !");
        return 0;
    }
    return l;
}//KMP
main()
{
    locate l;
    FILE *fp;
    char T[4];
    T[0]='\3';
    strcat(T,GOALSTR);

    fp=fopen("D:\aaa.txt","r");
    if(!fp)
    {
        printf("opening the file failed!");
        exit(0);
    }

    get_next(T,next);
    l=KMP(fp,T);
    printf("被检字符串在文件第%d行,第%d列。",l->row,l->line);
    return 0;
}//查找结束。

[ 本帖最后由 ghc123 于 2011-5-2 12:29 编辑 ]
搜索更多相关主题的帖子: 目标 include 字符串 
2011-04-30 20:22
ghc123
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-4-15
收藏
得分:0 
谁懂能快点告诉我吗?谢谢你

想做的事,才会做到
2011-04-30 21:02
永希
Rank: 2
等 级:论坛游民
帖 子:12
专家分:15
注 册:2011-4-12
收藏
得分:14 
确定代码没错?还是缺少什么东西?再自己看看
2011-05-01 22:32
快速回复:看看这个程序有声么问题,运行时不能打开文件为什么?谢谢
数据加载中...
 
   



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

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