示例#1
0
void check_blank()
{
	int i,j,k,l,m,temp1,temp,temp2;

	put_blank(x,y,0);

}
示例#2
0
void put_blank(int i, int j,int call)
{
	int l,m;
	putcount++;
	if (a[i][j]=='.'&& i>=0 && j>=0 && i<10 && j<10)
	{
//		cout<<"\n i = "<<i<<"\n j = "<<j<<"\n call = "<<call;
//		cout<<"\n putcount = "<<putcount;
		user[i][j]='_';
		a[i][j]='_';
//		cout<<"\n user["<<i<<"]["<<j<<"] = "<<user[i][j];
//		getch();
		l=i-1;
		m=j-1;
		put_blank(l,m,1);
		l=i-1;
		m=j;
		put_blank(l,m,2);
		l=i-1;
		m=j+1;
		put_blank(l,m,3);
		l=i;
		m=j+1;
		put_blank(l,m,4);
		l=i+1;
		m=j+1;
		put_blank(l,m,5);
		l=i+1;
		m=j;
		put_blank(l,m,6);
		l=i+1;
		m=j-1;
		put_blank(l,m,7);
		l=i;
		m=j-1;
		put_blank(l,m,8);
	}
	else if (a[i][j]=='1' && i>=0 && j>=0 && i<10 && j<10)
	{
		user[i][j]=a[i][j];
	}
	else if (a[i][j]=='2' && i>=0 && j>=0 && i<10 && j<10)
	{
		user[i][j]=a[i][j];
	}
	else if (a[i][j]=='o' && i>=0 && j>=0 && i<10 && j<10)
	{
		user[i][j]='.';
	}
}
示例#3
0
void remove_blank(char *filename)
{
    FILE *ifp, *ofp;
    char *p;
    short flag;		/* 原样输出模式 */
    int ind = 0, tem_ind = 0;
    char s[MAXSIZE], buf[MAXSIZE];
    int buf_t, new_line;

    if((ifp = fopen(filename, "r")) == NULL)
    {
        ferr("打开文件失败\n");
        exit(1);
    }

    if((ofp = fopen(FILENAME_BLANK, "w")) == NULL)
    {
        ferr("打开中转文件失败\n");
        exit(1);
    }

    while(fgets(s, MAXSIZE-1, ifp) != NULL)
    {
        p = s;
        buf_t = 0;
        while(*p == ' ' || *p == '\t') p++;	/* 去掉开头多余空格、TAB*/

        /* 检测第一个字符  */
        if(*p == '#' || (*p == '/' && *(p+1) == '/')) //行注释
            flag = 1;
	else if(*p == '/' && *(p+1) == '*') /* 大范围注释 */
	    flag = 2;
        else
            flag = 0;

        new_line = 1;

        while(*p)
        {
            while(!flag && *p == ' ' && (new_line || (*(p+1) == ' ' || *(p+1) == '\t')))
                p++;

	    if(*p == '*' && *(p+1) == '/') { /* 注释取消 */
		buf[buf_t++] = '*';
		buf[buf_t++] = '/';
		new_line = 1;
		p += 2;
		continue;
	    }

	    if(flag == 2) {	/* 大注释,原样输出 */
		buf[buf_t++] = *p++;
		continue;
	    }
		
            if(*p == '{')
            {
                tem_ind = 0;

                while(buf[buf_t-1] == ' ')
                {
                    buf_t--;
                }

                if(!new_line)
                    buf[buf_t++] = '\n';

                put_blank(buf, &buf_t, ind);

                buf[buf_t++] = *p++;
                buf[buf_t++] = '\n';
                ind++;		/* 要放在put_blank前 */
                new_line = 1;
                remove_blank_line(&p);
            }
            else if(*p == '}')
            {
                tem_ind = 0;
                ind--;
                if(!new_line)
                    buf[buf_t++] = '\n';
                while(buf[buf_t-1] == ' ')
                {
                    buf_t--;
                }
                put_blank(buf, &buf_t, ind);
                buf[buf_t++] = *p++;
                buf[buf_t++] = '\n';
                new_line = 1;
                remove_blank_line(&p);
            }
            else if(*p == '\n' ||
                    (*p == ';' && ((*(p+1) == '\n' || (*(p+1) == ' ' && *(p+2) == ' ')
                    || *(p+1) == '\t') || strstr(s, "for") == NULL)))
            {
                if(*p == '\n')
                {
                    buf[buf_t++] = *p++;

                    remove_blank_line(&p);

                    if(!flag && !new_line)
                    {
                        if(tem_ind == 0)
                            tem_ind = ind+1;
                        else tem_ind++;
                    }

                    new_line = 1;
                }
                else if(*p == ';')
                {
                    buf[buf_t++] = *p++;
                    buf[buf_t++] = '\n';
                    new_line = 1;
                    remove_blank_line(&p);
                    tem_ind = 0;
                }
            }
            else
            {
                if(new_line)
                {
                    if(tem_ind == 0)
                        put_blank(buf, &buf_t, ind);
                    else
                        put_blank(buf, &buf_t, tem_ind);
                }

                buf[buf_t++] = *p++;
                new_line = 0;
            }
        }

        /* 把多余的空格去掉 */
        while(buf[buf_t-1] == ' ')
        {
            buf_t--;
        }

        buf[buf_t] = '\0';

        printf("%s", buf);

        fprintf(ofp, "%s", buf);
    }

    fclose(ifp);
    fclose(ofp);
}