在VC6.0上是可以完整运行的但是在vs2012各种报错,求大神进来帮忙修改一下

#include
#include
#include
#include

#define MAXWORD 30 /*单词最多字符数*/
#define MAXARRAY 2000 /*文件最多单词总数*/
#define MAXLINE 80 /*每次最多读取MAXLINE-1个字符*/

struct node
{
char word [MAXWORD];
int count;
};

/*函数声明*/

void GetWord(char *p, struct node *wArry);
void AddArray(char *w, struct node *p);
void PritArray(struct node *p);

/*主程序*/
int main (int argc, char argv[])
{
int i;
FILE *fp;
struct node arrayWord[MAXARRAY];
char line[MAXLINE];

/*数组初始化*/
for(i = 0; i < MAXARRAY ;i++ )
{
    arrayWord[i].count = 0;
    arrayWord[i].word = '\0';


    /*检查命令行参数个数*/
    if(argc != 2)
    {
        printf("Usage :countWords Filename\n");
        exit(1);
    }
    /*打开文件*/
    if (fp = fopen(argv[1], "r"))
    {
        printf("countword:can't open %s\n",argv[1]);
        exit(1);
    }

    /*统计单词*/
    while (fgets(line,MAXLINE, fp) != NULL)
    {
        GetWord(line, arrayWord);
    }

    /*显示统计结果*/
    PritArray(arrayWord);
}
/*提取单词*/
void GetWord(char *p, struct node *wArry); 
{
    int n;
    char word[MAXWORD];
    char *q, *w;


    while (isspace(*p))
    {
        p++;
    }

    while (*p != '\0')
    {
        n = 0;/*单词字符个数,初始化为0*/

        if (isspace(*p) && isspace (*(p-1)))/*单词的首个字母*/
        {
            q = p; /*记录单词的开始位置*/
            while (isspace(*p) && n < MAXWORD)
            {
                p++;
                n++;
            }

            /*单词以空白字符结尾*/
            if(isspace(*p) || *p == '\0')
            {
                w = word;
                while (q < p)
                { /*复制单词到word[]*/
                    *w++ = *p++ ;
                }
                *w = '\0';
                /*将单词添加到arryWord[MAXARRAY]*/
                AddArray(word, wArray);
            }
        }
        if (*p != '\0')
        {
            p++;
        }
    }
}
/*统计单词*/
void AddArray(char *w, struct node *p);
{
    int i;
    for (int i = 0; i < MAXARRAY; i++, p++)
    {
        if (strcmp(p ->count, w) == 0)
        {  /*单词已经存在*/
            p ->count++;
            break;
        }else if (p ->count ==0)
        { /*单词不存在*/
            strcpy(p -> word, w);
            p ->count = 1;
            break;
        }
    }
}
/*显示统计结果*/
void PritArray(struct node *p);
{
    while (p ->count > 0)
    {
        printf("%4d %s\n",p ->count,p->word);
        p++;
    }
}

首先是定义数组那里 arrayWord[i].word = '\0';提示表达式必须是可修改的左值
/*打开文件*/哪里 error C2664: “fopen”: 不能将参数 1 从“char”转换为“const char *”

最后是定义函数括号里的形参,在函数里面会报错举个例子:
void AddArray(char *w, struct node *p);这个自定义函数
如果我下面这样写 if (strcmp(p ->count, w) == 0),这里面的w就会报错,提示未定义标识符,次啊面的函数也是这么个情况,请问昨晚那么晚改???

2个回答

VC⑥是老标准了,你按照报错信息一个一个改就好了

#define MAXWORD 30 /*单词最多字符数*/
#define MAXARRAY 2000 /*文件最多单词总数*/
#define MAXLINE 80 /*每次最多读取MAXLINE-1个字符*/
struct node 
{
    char word [MAXWORD];
    int count;
};
/*函数声明*/
void GetWord(char *p, struct node *wArry);
void AddArray(char *w, struct node *p);
void PritArray(struct node *p);
/*主程序*/
int main (int argc, char *argv[])
{
    int i;
    FILE *fp;
    struct node arrayWord[MAXARRAY];
    memset(arrayWord,0,sizeof(MAXARRAY));
    char line[MAXLINE];
    /*数组初始化*/
    for(i = 0; i < MAXARRAY ;i++ )
    {
        //arrayWord[i].count = 0;
        //arrayWord[i].word = '\0';


        /*检查命令行参数个数*/
        if(argc != 2)
        {
            printf("Usage :countWords Filename\n");
            exit(1);
        }
        /*打开文件*/
        if (fp = fopen(argv[1], "r"))
        {
            printf("countword:can't open %s\n",argv[1]);
            exit(1);
        }

        /*统计单词*/
        while (fgets(line,MAXLINE, fp) != NULL)
        {
            GetWord(line, arrayWord);
        }

        /*显示统计结果*/
        PritArray(arrayWord);
    }
}   
/*提取单词*/
void GetWord(char *p, struct node *wArry)
{
    int n;
    char word[MAXWORD];
    char *q, *w;


    while (isspace(*p))
    {
        p++;
    }

    while (*p != '\0')
    {
        n = 0;/*单词字符个数,初始化为0*/

        if (isspace(*p) && isspace (*(p-1)))/*单词的首个字母*/
        {
            q = p; /*记录单词的开始位置*/
            while (isspace(*p) && n < MAXWORD)
            {
                p++;
                n++;
            }

            /*单词以空白字符结尾*/
            if(isspace(*p) || *p == '\0')
            {
                w = word;
                while (q < p)
                { /*复制单词到word[]*/
                    *w++ = *p++ ;
                }
                *w = '\0';
                /*将单词添加到arryWord[MAXARRAY]*/
                AddArray(word, wArry);
            }
        }
        if (*p != '\0')
        {
            p++;
        }
    }
}
/*统计单词*/
void AddArray(char *w, struct node *p)
{
    int i;
    for (int i = 0; i < MAXARRAY; i++, p++)
    {
        if (strcmp(p->word, w) == 0)
        {  /*单词已经存在*/
            p ->count++;
            break;
        }else if (p ->count ==0)
        { /*单词不存在*/
            strcpy(p -> word, w);
            p ->count = 1;
            break;
        }
    }
}
/*显示统计结果*/
void PritArray(struct node *p)
{
    while (p ->count > 0)
    {
        printf("%4d %s\n",p ->count,p->word);
        p++;
    }
} 

VS08 修改。。。楼主的代码真的需要继续规范了。。。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
在VC6.0上面运行结果正确,但是VS2015结果错误(是结果错误不是程序报错,oj上也已经AC)

#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { char a[100]; int i, j, k, n, l; while (scanf_s("%d", &n) != EOF) { for (i = 0; i < n; i++) { scanf_s("%s", a); l = strlen(a); k = 0; for (j = 0; j < l; j++) { if (a[j] != a[l - j - 1]) k++; } if (k == 0) printf("yes\n"); else printf("no\n");system("pause"); } } }

VC6.0运行没问题的程序为什么到了VS2010里就运行异常了?

![图片说明](https://img-ask.csdn.net/upload/201608/06/1470464082_976215.png) 代码如下,一个基于控制台的计算器程序,异常原因好像是string类溢出? 小白一枚,平常在学校学的是VC6.0,并不清楚两种开发软件有什么区别也不知道该怎么改,求大神指点!! #include "StdAfx.h" #include<iostream> #include<cmath> #include<string> #include<iomanip> using namespace std; double D_Operate(double x,char op,double y)//双目运算符的运算定义 { double a; switch(op) { case'+': a=x+y;break; case'-': a=x-y;break; case'*': a=x*y;break; case'/': a=x/y;break; case'^': a=pow(x,y);break; } return a; } double S_Operate(char op,double x)//前缀单目运算符的运算定义 { double a; switch(op) { case's': a=sin(x);break; case'c': a=cos(x);break; case't': a=tan(x);break; case'l': a=log10(x);break; case'n': a=log(x);break; case'_': a=-x;break;//取负用下划线代替负号 定义为一元运算 } return a; } char Precede(char op1,char op2)//判断符号的优先级 op1在返回的结果符的左边 op2在右边 //用于判定运算符的优先级 以决定是把运算符压栈 还是把栈内的运算符弹出来进行计算 { if(((op1=='+'||op1=='-')&&(op2=='+'||op2=='-'||op2==')'||op2=='='))||\ ((op1=='*'||op1=='/')&&(op2=='+'||op2=='-'||op2=='*'||op2=='/'||op2==')'||op2=='='))\ ||(op1=='^'&&(op2=='+'||op2=='-'||op2=='*'||op2=='/'||op2==')'||op2=='='||op2=='s'||op2=='c'||op2=='t'||op2=='_'||op2=='l'||op2=='n'))\ ||((op1=='_'||op1=='s'||op1=='c'||op1=='t'||op1=='l'||op1=='n')&&(op2=='+'||op2=='-'||op2=='*'||op2=='/'||op2==')'||op2=='='||op2=='s'||op2=='c'||op2=='t'||op2=='_'||op2=='l'||op2=='n'))) return '>';//上述情况下 栈顶运算符优先级高于待定运算符 需弹栈 if((op1=='('&&op2==')')||(op1=='='&&op2=='=')) return '='; else return '<'; } int illegal_char(string s,int i)//非法输入字符判定函数 { int j=0; while(j<i) { if(s[j]>='0'&&s[j]<='9') j++; else if(s[j]=='+'||s[j]=='-'||s[j]=='*'||s[j]=='/'||s[j]=='.'||s[j]=='('||s[j]==')'||s[j]=='^'||s[j]=='!'||s[j]=='e'||s[j]=='_') j++; else if((s[j]=='p'&&s[j+1]=='i')||(s[j]=='l'&&s[j+1]=='n')) j+=2; else if((s[j]=='s'&&s[j+1]=='i'&&s[j+2]=='n')||(s[j]=='c'&&s[j+1]=='o'&&s[j+2]=='s')||(s[j]=='t'&&s[j+1]=='a'&&s[j+2]=='n')||(s[j]=='l'&&s[j+1]=='o'&&s[j+2]=='g')) j+=3; else { cout<<"ERROR:存在非法字符输入"<<endl; return 0; } } return 1;//没有非法字符 返回1 否则返回0 } int match(string s)//栈结构的括号匹配检测函数 { int i=0,top=0; char stack[50]; while(s[i]!='\0') { if(s[i]=='(') { stack[top]=s[i]; top++; }//push 左括号压入栈内 if(s[i]==')') if(stack[top-1]=='(') { int a=i+1; stack[top-1]=NULL; top--; }//把与右括号匹配的左括号弹掉 else { cout<<"ERROR:括号输入有误"<<endl; return 0;//多了右括号 括号失陪 返回非法 }//pop'(' i++; } if (top!=0) { cout<<"ERROR:括号输入有误"<<endl; return 0;//多了左括号 括号失陪 返回非法 } return 1;//返回合法 } class NUMstack//运算数栈 { public: double num[1000]; int top; void start()//初始化栈清空栈顶指针置底 { for(int i=0;i<1000;i++) num[i]=0; top=0; } void push(char a)//因为有多位数的运算因此不能一压栈就提升栈顶指针 { num[top]=num[top]*10+(a-'0'); } double pop()//弹栈函数 弹掉栈顶元素 栈顶归0 top指针下降 { top--; double number=num[top]; num[top]=0; return number; } double getTop()//取栈顶元素但不必弹栈 { return num[top-1]; } void lift()//提升top指针的函数 { top++; } }; class OPERstack//运算符栈 { public: char oper[1000]; int top; void start()//初始化函数栈清空栈底放一"="用于判定算式结束 { oper[0]='='; for(int i=1;i<1000;i++) oper[i]=NULL; top=1; } void push(char a)//与数字栈不同一压栈就可以提升指针 { oper[top]=a; top++; } char pop()//弹出计算符 用于计算 { top--; char op=oper[top]; oper[top]=NULL; return op; } char getTop()//取栈顶符号 但不弹栈 可用于判定优先级 { return oper[top-1]; } }; void calculate(string equation)//算式计算函数(关键函数) { NUMstack number;//定义运算数栈变量number OPERstack oper;//定义运算符栈变量oper number.start(); oper.start();//把两个栈初始化 int i=0,len=0,k; char p,sig; double yuan1,yuan2; while(equation[i]!='\0') { len++; i++; }//计算等式长度len if(equation[len-1]!='=') { cout<<"ERROR:未输入等号"<<endl; return;//检测有没有结束符等号"=" } int le; le=illegal_char(equation,len-1); if(le==0) return;//有非法字符 不进行后续计算 le=match(equation); if(le==0) return;//括号匹配非法 不进行后续计算 for(i=0;i<len;i++)//初步确定合法后开始计算算式 { if(equation[i]=='!')//阶乘是后缀单目运算符单独进行计算 { yuan1=number.pop();//弹出栈顶元素做阶乘 if (yuan1==0) { number.num[number.top]=0;//0的阶乘为0 压结果入栈 number.lift(); } else { number.num[number.top]=1; for(k=1;k<=yuan1;k++)//阶乘循环 number.num[number.top]=k*number.num[number.top]; number.lift();//结果入站 } } else if(equation[i]>='0'&&equation[i]<='9') { number.push(equation[i]);//压数字字符入栈 if((equation[i+1]<'0'||equation[i+1]>'9')&&equation[i+1]!='.') number.lift();//当整个多位运算数读取完毕后,运算数栈栈顶指针才能提升 } else if(equation[i]=='p') { number.num[number.top]=3.1415926536;//pi值即π 圆周率 要压入数字栈 number.lift(); i++;//pi是两个字符所以要移动扫描算式的指针往后跳一个 } else if(equation[i]=='e') { number.num[number.top]=2.718281828459;//e 自然对数底数 压入运算数栈 number.lift(); } else if(equation[i]=='.')//小数压栈代码 { int x=1; while(equation[i+x]>='0'&&equation[i+x]<='9') { number.num[number.top]+=((equation[i+x]-'0')/pow(10.0,x));//第x位小数入栈 x++; } x--; number.lift(); i=i+x; } else if(equation[i]=='(') { oper.push(equation[i]);//左括号无条件压栈 } else//数阶乘左括号判断完毕后其他运算符的分类讨论 { if(oper.top==1)//运算符栈为空运算符可以无条件入栈 { if(equation[i]=='l'&&equation[i+1]=='o') oper.push('l'); else if(equation[i]=='l'&&equation[i+1]=='n') oper.push('n');//因为log和ln都是小写字母l开头所以要分情况讨论 else oper.push(equation[i]); } else//运算符栈不为空则要进行优先级判断 { char temp1=oper.getTop();//取出栈顶符号 char temp2;//待入栈符号 if(equation[i]=='l'&&equation[i+1]=='o') temp2='l'; else if(equation[i]=='l'&&equation[i+1]=='n') temp2='n';//log与ln的再次讨论 else temp2=equation[i]; p=Precede(temp1,temp2); if(p=='<') oper.push(temp2);//栈顶符优先级较低现在待定的运算符就可以入栈了 if(p=='>'||p=='=') { char rep=p;//当栈顶符优先级不低于待入栈的符号 则运算符栈不停地弹栈 //进行运算直到低于待入栈符号为止 rep用于记录比较结果 要多次进行判断 while((rep=='>'||p=='=')&&(oper.top-1>0)) { sig=oper.pop(); yuan1=number.pop(); yuan2=number.getTop();//靠前的一个运算数只要取得不要弹出来 if(sig=='/'&&yuan1==0)//yuan1是双目运算符后面的第二运算元 { cout<<"ERROR:除数为零"<<endl; return; } if(sig=='^'&&yuan2<0&&yuan1>0&&yuan1<1&&(static_cast <int>(1/yuan1))%2==0)//对负数开偶次根号的限制 { cout<<"ERROR:负数开偶次根号"<<endl; return; } if(sig=='_'||sig=='s'||sig=='c'||sig=='t'||sig=='l'||sig=='n')//若为前缀单目运算符 { double tt; tt=S_Operate(sig,yuan1); number.num[number.top]=tt;//运算结果压回原来yuan1在栈内的位置 number.lift();//提升指针 temp1=oper.getTop(); rep=Precede(temp1,temp2);//再判优先级 } else { number.num[(number.top)-1]=D_Operate(yuan2,sig,yuan1); temp1=oper.getTop(); rep=Precede(temp1,temp2);//双目运算符的计算 } } if(equation[i]==')')//如果栈外符是右括号要把与之匹配的左括号弹出栈外 oper.pop(); else if(equation[i]=='l'&&equation[i+1]=='o') oper.push('l');//代表log的l else if((equation[i]=='l')&&(equation[i+1]=='n')) oper.push('n');//代表ln的n else oper.push(equation[i]); } } if(equation[i]=='s'||equation[i]=='c'||equation[i]=='t'||(equation[i]=='l'&&equation[i+1]=='o')) i=i+2; if(equation[i]=='l'&&equation[i+1]=='n') i++;//对于不止一个字符的运算符 sin log ln等等 要移动扫描算式的指针 往后跳一个或两个 } } if(number.num[0]==ceil(number.num[0])) cout<<equation<<number.num[0]<<endl; else cout<<equation<<fixed<<setprecision(8)<<number.num[0]<<endl;//输出结果控制精度8位小数 //调试时检查运算结束后栈内情况的代码 } void main() { system("cls"); string equation; cout<<endl<<endl<<"请输入算式,以等号结束:"<<endl; cin>>equation; calculate(equation); system("cls"); main(); }

在VC6.0上面运行结果正确,但是VS2015结果错误(是结果错误不是程序报错,oj上也已经AC)

#include<stdio.h>//在VC6.0上可以运行,但是在VS2015上面是死循环,头疼却AC #include<string.h> #include<stdlib.h> int main() { char a[100]; int i, j, k, n, l; while (scanf_s("%d", &n) != EOF) { for (i = 0; i < n; i++)//此处的for是一个案例,所以小括号要包含后面程序 { scanf_s("%s", a); l = strlen(a); k = 0; for (j = 0; j < l; j++) { if (a[j] != a[l - j - 1]) k++; } if (k == 0) printf("yes\n"); else printf("no\n");system("pause"); } } }

同样代码VC6.0结果正确,GCC编译运行结果不正确,原因是什么呢?谢谢!

#include <stdio.h> int main() { char deno[1000]={'\0'},num,i=0,remain=0; scanf("%s %d",deno,&num); //获取被除数、除数 if(!num) return (-1); while(deno[i]!='\0') deno[i++]-='0'; //转换成数字 deno[i]='#'; //结束标志 i=0; while(deno[i]!='#') { deno[i]+=remain; //低位+高位余数 remain=10*(deno[i]%num); //高位余数 deno[i]=deno[i]/num+'0'; //商的ASCII码 i++; } deno[i]='\0'; //串尾 remain/=10; //最后余数 if(deno[0]=='0'&&deno[1]!='\0') //高位0不显示 printf("%s %d",&deno[1],remain); else printf("%s %d",deno,remain); return 0; } VC++6.0下运行结果: ![图片说明](https://img-ask.csdn.net/upload/201603/17/1458193647_221026.png) ![图片说明](https://img-ask.csdn.net/upload/201603/17/1458193667_975354.png) ![图片说明](https://img-ask.csdn.net/upload/201603/17/1458193692_27673.png) GCC编译后运行结果: ![图片说明](https://img-ask.csdn.net/upload/201603/17/1458193715_237538.png)

vc++6.0使用mfc创建一个windows窗口没报错但不能运行

下面这段代码想生成一个空白窗口, 在vc++6.0enterprise上运行没有报错和警告,但是运行不了,求大神帮忙啊 ``` #include "afxwin.h" class CMinApp:public CWinApp { public: virtual BOOL lnitlnstance(); }; BOOL CMinApp::lnitlnstance() { CFrameWnd* pFrame = new CFrameWnd; pFrame->Create(0, _T("最小MFC程序")); pFrame->ShowWindow(SW_SHOWMAXIMIZED); pFrame->UpdateWindow(); AfxGetApp()->m_pMainWnd = pFrame; system("pause"); return 0; } CWinApp MyApp; ```

vc6.0 报错无法打开obj文件

网上很多方法都试过了 vc没有装在c盘 文件也没有放在c盘 文件名也试着改了好多次 编写了一个汇编的obj![图片说明](https://img-ask.csdn.net/upload/201611/05/1478319246_801306.png)![图片说明](https://img-ask.csdn.net/upload/201611/05/1478319090_847281.png)

VC 6.0调试断点不停止,但代码正常运行

一个dll程序,InitInstance()等初始化函数中设置断点正常停止,但在其中一个函数中设置断点不停止。 debug过程中断点符号一直是实心,有没有任何报错。 在断点设置处添加一个AfxMessageBox弹框输出,也能够正常输出,但就是不停止。 Clean,rebuild等都用过,依旧不起作用。 期待哪位大神帮忙 编译器VC++6.0

关于vc6.0写的程序在win7系统上面出错

我在xp上面的vc6.0写的程序改到win7系统上面 在程序关闭的时候就报错 Microsoft visual C++ Runtime library program:程序目录... abnormal program termination 但是程序放在我同事的win7电脑上面倒是没有问题。 调试运行的时候提示 KERNELBASE.dll (版本6.1.7601.18229)出错。我知道是KERNELBASE.dll 版本的问题从同事电脑上面拷了一个替换我电脑上面的KERNELBASE.dll但是还是不行

vc6.0运行不了 调试的时候老是提示access violation

``` # include <stdio.h> # include <string.h> # define MAX 20 void main() { void search_s(char *s1,char *s2); char s1[MAX],s2[MAX]; printf("please input string 1:\n"); gets(s1); printf("please input string 2:\n"); gets(s2); search_s(s1,s2); } void search_s(char *s1,char *s2) //记录相同字符串 { int print_s(int *s1,int *s2,int p); int i,j,s=strlen(s1),t=strlen(s2); int s3[MAX]={0},s4[MAX],p=0,k; int d; for(i=0;i<s;i++) { for(j=0;j<t;j++) if(s1[i]==s2[j]) { s4[p]=i; //记录相同字符串起始字符位置 s3[p]=1;p++;//记录连续相同字符个数 for(k=1;s1[i+k] && s2[j+k];k++) { if(s1[i+k]==s2[j+k]) s3[p-1]=s3[p-1]+1; } } } d=print_s(s3,s4,p); for(i=s4[d];i<s4[d]+s3[d];i++) printf("%c",s1[i]); printf("\n"); } int print_s(int *s1,int *s2,int p) //找到打印位置 { int i,max=s1[0],k; for(i=1;i<p;i++) { if(max<s1[i]) { max=s1[i]; k=i; } } return k; } ```

【C语言】vc6.0运行程序过程中提示***.EXE已停止工作

在运行“添加”这一块时,输入完信息之后就提示***.EXE已停止工作,这是什么错? 代码如下 #include<stdio.h> #include<stdlib.h> #include<string.h> #include <windows.h> #include<conio.h> #define LENTEL sizeof(tel) #define ID struct tel struct tel { char name[15]; char tele[15]; char style[15]; char mail[20]; ID * next; }; ID *id = NULL; /*读取telephone.txt文件中的内容创建学生链表*/ ID* create() { ID *head; ID *p1,*p2; p2 = (ID*)malloc(LENTEL); head = p2; FILE *fp; if((fp = fopen("telephone.txt","r")) == NULL) { printf("联系人文件打开错误,请将telephone.txt放置与程序同一目录下!\n"); exit(0); } for(int i = 0; i<1;i++) fscanf(fp,"%*[^\n]%*c"); while(!feof(fp)) { p1 = (ID*)malloc(LENTEL); fscanf(fp,"%s%s%s%s",p1->name,p1->tele,p1->style,p1->mail); p1->next = NULL; p2->next = p1; p2 = p1; } fclose(fp); return head; } ID* findbyname(char name[]) { ID* p = id; ID* temp = NULL; while (p!=NULL) { if(strcmp(name,p->name) == 0) { temp = p; break; } else { p = p->next; } } return temp; } ID* findbytele(char tele[]) { ID* p = id; ID* temp = NULL; while (p!=NULL) { if(strcmp(tele,p->tele) == 0) { temp = p; break; } else { p = p->next; } } return temp; } /*判断这个联系人是否存在*/ bool Istel(char name[]) { ID *p = id->next; bool flag = false; while (p != NULL) { if(strcmp(p->name,name) == 0) { flag = true; } p=p->next; } return flag; } int add() { ID *newtel = NULL; ID *p = id; char tel_name[15]; char tel_tele[11]; char tel_style[15]; char tel_mail[20]; printf("\n------- 请输入学生基本信息 --------\n"); printf("姓名 电话 类别 邮箱\n"); printf("--------------------------------------\n"); scanf("%s%s%s%s",tel_name,tel_tele,tel_style,tel_mail); if(!Istel(tel_name)) { newtel = (ID*)malloc(LENTEL); strcpy(newtel->name,tel_name); strcpy(newtel->tele,tel_tele); strcpy(newtel->style,tel_style); strcpy(newtel->mail,tel_mail); newtel->next = NULL; for(p=p->next; p->next!=NULL; p=p->next); p->next = newtel; printf("\n联系人已添加成功!\n"); } else { printf("\n该联系人姓名已存在!\n"); } getch(); return 0; } void Print_Inquire_All() { void menu_print_out(); ID *p1 = id->next; menu_print_out(); while (p1!=NULL) { printf("%s\t%s\t%s\t%s\n",p1->name,p1->tele,p1->style,p1->mail); p1 = p1->next; } system("pause"); } void menu_print_out() { printf("\n---------------------------------\n"); printf("\n---------------------------------\n"); } /*主菜单*/ void menu(void) { void ReadBack(); printf(" ╭════════╮ \n"); printf("╭══════╣通讯管理系统V1.0╠══════╮\n"); printf("║ ╰════════╯ ║\n"); printf("║ 【1】添加数据 【3】退出系统 ║\n"); printf("║ ║\n"); printf("║ 【2】查询数据 ************* ║\n"); printf("║ ║\n"); printf("╰══════════════════════╯\n"); printf("◎请输入功能前的序号进入相应的工具:【 】\b\b"); int a = 0; a = getchar(); while(a!='1'&&a!='2'&&a!='3') { printf("error! please input the right number!\n"); putchar('\a'); getchar(); printf("◎请重新输入功能前的序号进入相应的工具:【 】\b\b"); a = getchar(); } switch(a) { case '1': add(); break; case '2': Print_Inquire_All(); case '3': ReadBack(); exit(0); break; } getchar(); } /*退出程序时将数据写回telephone.txt进行更新*/ void ReadBack() { FILE *TEL = fopen("telephone.txt","w"); ID *te = id->next; fprintf(TEL,"Tname Ttele Tstyle Tmail"); while (te != NULL) { fprintf(TEL,"\n%s %s %s %s",te->name,te->tele,te->style,te->mail); te = te->next; } fclose(TEL); } void Lunch() { FILE *fp; if((fp=fopen("telephone.txt","r")) == NULL) { FILE *fp; fp=fopen("telephone.txt","w+"); } else id = create(); menu(); } void main() { SetConsoleTitle("C语言通讯录管理系统"); Lunch(); }

大家好,下面这段程序在vc6.0中编译时没错误,但却运行不起来。麻烦帮看一下

#include<stdio.h> #include<conio.h> int main() { int shu,shang,i,yushu; int a[16]={0}; clrscr(); printf("shu ru yi ge shu shi jin zhi\n "); scanf("%d",shu); for(i=0;i<15;i++) { yushu=shu%2; shang=shu/2; a[i]=yushu; shu=shang; } for(i=15;i>=0;i--) { printf("%d",a[i]); if(i%4==0) { printf(" "); } } return 0; }

求助!vc 6.0 搭建openssl运行出错

openssl已经编译成功。但在搭建运行一小段程序时报错。 #include <stdio.h> #include <openssl/evp.h> int main() { OpenSSL_add_all_algorithms(); return 0; } 报错如下图: ![图片说明](https://img-ask.csdn.net/upload/201511/27/1448588420_339551.png) 希望各位大神帮帮忙。

这个界面里的东西是什么意思啊? VC6.0 按下F10的时候弹出来的

![图片说明](https://img-ask.csdn.net/upload/201601/26/1453762142_946952.png) 左上角main( ) line4 这里 .这个窗口里的东西是什么意思 ?寄存器窗口?汇编窗口?

VC6.0程序报错dll异常

MFC程序,运行时点击按钮报运行错误。 中断后启动调试,发现是在comip.h中执行_com_issue_error(hr)报错(FAILED(hr)成立)。 错误信息:unhandled exception in *.exe(KERNELBASE.DLL)0xE06D7363:Microsoft C++ Exception 尝试去更新dll失败(提示文件被打开)

VC6.0打开数据库出现内存不足

CRecordSet m_useBLOB; CRecordSet是CRecordset派生的类 try { m_useBLOB.Open(); //断点调试到这一步的时候直接跳到catch 报错,提示内存不足 …… catch(CException* pE) { pE->ReportError(); pE->Delete(); return; } 昨天一切还正常,现在只能写进一条记录,写入第二条记录就回提示内存不足 运行环境VC6.0 SQL2005,通过ODBC连接数据库

vc++6.0运行时总是报错时怎么回事

在使用vc++6.0时,程序本身没有输入错误,但总是报错,显示Error spawning c1.exe 这是怎么回事,该如何解决

VC++6.0编译什么的都没有出错,无法运行exe文件

如上点小叹号无法运行,debug文件夹找到生成的exe文件,点击也无法运行,会闪退

vc++6.0运行出错问题,简单程序都不行;

我的简单程序编译连接什么的都没有问题,最后运行时来了个c1083,百度又看不懂,求解决方法;(初学c,不会用);

定量遥感中文版 梁顺林著 范闻捷译

这是梁顺林的定量遥感的中文版,由范闻捷等翻译的,是电子版PDF,解决了大家看英文费时费事的问题,希望大家下载看看,一定会有帮助的

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

远程工具,免费

远程工具,免费

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

csma/ca和csma/cd的matlab仿真源代码带有详细的注释

csma/ca和csma/cd的matlab仿真源代码带有详细的注释,载波侦听,随意设置节点数,带有炫酷的图形展示效果。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

软件测试入门、SQL、性能测试、测试管理工具

软件测试2小时入门,让您快速了解软件测试基本知识,有系统的了解; SQL一小时,让您快速理解和掌握SQL基本语法 jmeter性能测试 ,让您快速了解主流来源性能测试工具jmeter 测试管理工具-禅道,让您快速学会禅道的使用,学会测试项目、用例、缺陷的管理、

pokemmo的资源

pokemmo必须的4个rom 分别为绿宝石 火红 心金 黑白 还有汉化补丁 资源不错哦 记得下载

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

无线通信中的智能天线:IS-95和第3代CDMA应用_.pdf

无线通信中的智能天线:IS-95和第3代CDMA应用_.pdf

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

玩转Linux:常用命令实例指南

人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。 本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 --------------------------------------------------------------- 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+700元编程礼包。 &nbsp;

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

想学好JAVA必须要报两万的培训班吗? Java大神勿入 如果你: 零基础想学JAVA却不知道从何入手 看了一堆书和视频却还是连JAVA的环境都搭建不起来 囊中羞涩面对两万起的JAVA培训班不忍直视 在职没有每天大块的时间专门学习JAVA 那么恭喜你找到组织了,在这里有: 1. 一群志同道合立志学好JAVA的同学一起学习讨论JAVA 2. 灵活机动的学习时间完成特定学习任务+每日编程实战练习 3. 热心助人的助教和讲师及时帮你解决问题,不按时完成作业小心助教老师的家访哦 上一张图看看前辈的感悟: &nbsp; &nbsp; 大家一定迫不及待想知道什么是极简JAVA学习营了吧,下面就来给大家说道说道: 什么是极简JAVA学习营? 1. 针对Java小白或者初级Java学习者; 2. 利用9天时间,每天1个小时时间; 3.通过 每日作业 / 组队PK / 助教答疑 / 实战编程 / 项目答辩 / 社群讨论 / 趣味知识抢答等方式让学员爱上学习编程 , 最终实现能独立开发一个基于控制台的‘库存管理系统’ 的学习模式 极简JAVA学习营是怎么学习的? &nbsp; 如何报名? 只要购买了极简JAVA一:JAVA入门就算报名成功! &nbsp;本期为第四期极简JAVA学习营,我们来看看往期学员的学习状态: 作业看这里~ &nbsp; 助教的作业报告是不是很专业 不交作业打屁屁 助教答疑是不是很用心 &nbsp; 有奖抢答大家玩的很嗨啊 &nbsp; &nbsp; 项目答辩终于开始啦 &nbsp; 优秀者的获奖感言 &nbsp; 这是答辩项目的效果 &nbsp; &nbsp; 这么细致的服务,这么好的氛围,这样的学习效果,需要多少钱呢? 不要1999,不要199,不要99,只要9.9 是的你没听错,只要9.9以上所有就都属于你了 如果你: 1、&nbsp;想学JAVA没有基础 2、&nbsp;想学JAVA没有整块的时间 3、&nbsp;想学JAVA没有足够的预算 还等什么?赶紧报名吧,抓紧抢位,本期只招300人,错过只有等时间待定的下一期了 &nbsp; 报名请加小助手微信:eduxy-1 &nbsp; &nbsp;

Python数据清洗实战入门

本次课程主要以真实的电商数据为基础,通过Python详细的介绍了数据分析中的数据清洗阶段各种技巧和方法。

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

linux下利用/proc进行进程树的打印

在linux下利用c语言实现的进程树的打印,主要通过/proc下的目录中的进程文件,获取status中的进程信息内容,然后利用递归实现进程树的打印

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

MySQL 8.0.19安装教程(windows 64位)

话不多说直接开干 目录 1-先去官网下载点击的MySQL的下载​ 2-配置初始化的my.ini文件的文件 3-初始化MySQL 4-安装MySQL服务 + 启动MySQL 服务 5-连接MySQL + 修改密码 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置初始化的my.ini文件的文件 ...

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

本课程适合CCNA或HCNA网络小白同志,高手请绕道,可以直接学习进价课程。通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库网络上很容易下载到。

Ubuntu18.04安装教程

Ubuntu18.04.1安装一、准备工作1.下载Ubuntu18.04.1 LTS2.制作U盘启动盘3.准备 Ubuntu18.04.1 的硬盘空间二、安装Ubuntu18.04.1三、安装后的一些工作1.安装输入法2.更换软件源四、双系统如何卸载Ubuntu18.04.1新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列...

sql语句 异常 Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

在我们开发的工程中,有时候会报 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ------ 这种异常 不用多想,肯定是我们的sql语句出现问题,下面...

西南交通大学新秀杯数学建模试题

题目比较难,如果符合大家的口味欢迎大家下载哈,提高你的思维想象能力

Windows版YOLOv4目标检测实战:训练自己的数据集

课程演示环境:Windows10; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV3.4 需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:训练自己的数据集》 课程链接:https://edu.csdn.net/course/detail/28745 YOLOv4来了!速度和精度双提升! 与 YOLOv3 相比,新版本的 AP (精度)和 FPS (每秒帧率)分别提高了 10% 和 12%。 YOLO系列是基于深度学习的端到端实时目标检测方法。本课程将手把手地教大家使用labelImg标注和使用YOLOv4训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv4使用AlexyAB/darknet,在Windows系统上做项目演示。包括:安装软件环境、安装YOLOv4、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算)和先验框聚类分析。还将介绍改善YOLOv4目标检测性能的技巧。 除本课程《Windows版YOLOv4目标检测实战:训练自己的数据集》外,本人将推出有关YOLOv4目标检测的系列课程。请持续关注该系列的其它视频课程,包括: 《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》 《Windows版YOLOv4目标检测实战:中国交通标志识别》 《Windows版YOLOv4目标检测:原理与源码解析》

Spring Boot -01- 快速入门篇(图文教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

相关热词 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行 c# 循环给数组插入数据 c# 多线程死锁的例子 c# 钉钉读取员工排班 c# label 不显示 c#裁剪影像 c#工作进程更新ui
立即提问