首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么会有这种异常?从来没见过。

2012-04-08 
为什么会有这种错误??从来没见过。。C/C++ code#includestdio.h#includectype.h#includestdlib.h#incl

为什么会有这种错误??从来没见过。。

C/C++ code
#include<stdio.h>#include<ctype.h>#include<stdlib.h>#include<string.h>#include"cslib.h"struct keytab{    int number;    char *word;}keyword[]={0,"auto",0,"break",0,"float",0,"int"};#define NKEYS (sizeof keyword/sizeof keyword[0])#define MAXWORD 100int getword(char *s,int n);int binsearchchar(char *s,struct keytab*,int n);int getch1(void){    int c;    return c=(buf>0)?val[--buf]:getchar();}void ungetch1(int c){    if(buf>1000)        printf("too many characters");    else        val[buf++]=c;}int main(){    int n; //记录找到的匹配的关键词的号码.    char word[MAXWORD];    while((getword(word,MAXWORD))!=EOF){        if(isalpha(word[0])){            if((n=binsearchchar(word,keyword,NKEYS))>0){                keyword[n].number++;            }        }    }    for(n=0;n<NKEYS;n++)        if(keyword[n].number>0)            printf("%4d  %s\n",keyword[n].number,keyword[n].word);    return 0;}int binsearchchar(char *s,struct keytab keyword[],int n){    int mid,low=0,high=n-1;    int cond=0;    while(low<=high){        mid=(low+high)/2;        if((cond=strcmp(s,keyword[mid].word))>0)            low=mid+1;        else if(cond<0)            high=mid-1;        else            return mid;    }    return -1;}//n控制最大的单词读取数int getword(char *s,int n){    int c;    char *w=s;    while(isspace(c=getch1()))        ;    if(c!=EOF)        *w++=c;    if(!isalpha(c)){        *w='\0';        return c;    }    for(;n>0;n--)        if(!isalpha(*w++=getch1())){            ungetch1(*w);            break;        }        *w='\0';        return s[0];}


报错我觉得是哪超过了ASCII编码。。
调试了N久,就连查找int都找不到。。
我是用了输入重定向输进去的。。
求高手指导。。

[解决办法]
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
右边Visual C++ 2010 Express下面的Select language...下拉选‘简体中文’,再按Install Now按钮

然后参考C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\bsearch.c

热点排行