首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的freopen函数不工作?

为什么我的freopen函数不工作?
EN

Stack Overflow用户
提问于 2012-09-14 20:43:29
回答 1查看 1.9K关注 0票数 0
代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
#define MAXN 15
char forbid[MAXN][MAXN];
int dp[2][1<<MAXN],c[1<<MAXN],*dp1,*dp2;
int cnt_one(int x)
{
    int s=0;
    while(x)
    {
        s++;
        x&=x-1;
    }
    return s;
}
int main()
{
    int t,n,s,a,b,i,j,k;
/*This is my use of freopen function*
************************************/
    freopen("datain.txt","r",stdin);
    freopen("dataout.txt","w",stdout);
/*This is just a dynamic program to solve a mathematical problem*
****************************************************************/
    for(i=0;i<(1<<MAXN);i++) c[i]=cnt_one(i);
    scanf("%d",&t);
    while(t--)
    {
        memset(forbid,0,sizeof(forbid));
        memset(dp[0],0,sizeof(int)*(1<<MAXN));
        dp[0][0]=1;
        scanf("%d%d",&n,&s);
        while(s--)
        {
            scanf("%d%d",&a,&b);
            forbid[a][b]=1;
        }
        for(i=1;i<=n;i++)
        {
            if(i%2)
            {
                dp1=dp[0];
                dp2=dp[1];
            }
            else
            {
                dp1=dp[1];
                dp2=dp[0];
            }
            memset(dp2,0,sizeof(int)*(1<<MAXN));
            for(j=0;j<(1<<n);j++)
            {
                if(c[j]!=i-1) continue;
                for(k=0;k<n;k++)
                {
                    if(!(j>>k&1)&&!forbid[i][n-k]) dp2[j^(1<<k)]+=dp1[j];
                }
            }
        }
        printf("%d\n",dp2[(1<<n)-1]);
    }
    return 0;
}

这是我的程序,我用动态规划的方法解决了一道数学题。但是,当我使用"freopen“函数将"stdout”流重定向到"dataout.txt“文件时,它失败了,并且该文件中没有数据。你能告诉我为什么我可以从"datain.txt“获取数据,但不能将数据输出到”dataout.txt“吗?我对"stdout”流的"freopen“函数有问题吗?

EN

回答 1

Stack Overflow用户

发布于 2012-09-14 21:15:38

我认为问题在于你有一个你看不到的分段错误。如果你在freopen之后放一个printf和一个return,我想它会工作的(对我来说是有效的)。

我建议您在为调试而编译的结果可执行文件上使用"valgrind“,以查看程序在哪一行崩溃。如果您希望有人进一步帮助您,您需要提供示例输入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12424821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档