| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 837 人关注过本帖
标题:请大家帮帮忙,谢谢了!
只看楼主 加入收藏
风的飞扬0102
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-4-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
请大家帮帮忙,谢谢了!
#include <stdio.h>
#define M  2
#define N  2
void main()
{   int c[M][N];
    int s[100000]={0};
    int i=0,j=3 ;
    int n;
    FILE *fp_create_well_info=NULL;
    fp_create_well_info=fopen("create_well_info.txt","a") ;
    for(int k=0; k<=15; k++)
 {  n=k;
  while(n)
 {
  s[i++] = n % 2;
  n /= 2;
 }
   for(int w=0; w<=j; w++)
 {if(s[w]==0)
 s[w]=-1;
 }
 for(int u=0; u<M; u++)
  { for(int v=0; v<N; v++)   
    { c[u][v]=s[j--];
        fprintf(fp_create_well_info,"%d ",c[u][v]);}
 }
 }
   fclose(fp_create_well_info);
}
我想把16个数组全部写入txt文件中,为什么会出现乱码,但一个一个的输入可以正确存入,请大家帮帮忙,谢谢了!
搜索更多相关主题的帖子: include 
2014-04-30 16:06
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
你的程序 想干嘛呢  你的程序对吗  有可能和写文件无关呢

DO IT YOURSELF !
2014-04-30 16:29
风的飞扬0102
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-4-22
收藏
得分:0 
回复 2 楼 wp231957
程序编译的时候没有出错,我把循环去了之后,可以写入文件中,但加上循环后就会出现乱码,不知道为什么,我的目的就是把十六个二维数组存入txt文件中,以便调用该文件。
2014-04-30 17:00
loveClangage
Rank: 8Rank: 8
来 自:广东云浮
等 级:蝙蝠侠
帖 子:326
专家分:891
注 册:2013-8-23
收藏
得分:5 
写入文件方式问题吧, 有二进制,

编写的程序,不能改变世界,却可以改变自己...
2014-04-30 17:45
风的飞扬0102
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-4-22
收藏
得分:0 
回复 4 楼 loveClangage
我不懂,能帮我改一下吗?谢谢!
2014-04-30 19:13
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:0 
你这个程序是想要达到神马目的?单纯写进去数据 需要那么复杂吗

未知令人期待!
2014-04-30 21:54
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:10 
你计算有问题。你观察一下j的值。如果你只是要这16个矩阵的文本文件。试试下面的程序。
#include <stdio.h>
//函数功能:建立16个2*2矩阵的所有数据的总数据表
void getArr64(int a[])
{   
    int dd[2]={1,-1};
    int i,j,k,h,n=0;

    for(i=0;i<2;i++)
        for(j=0;j<2;j++)
            for(k=0;k<2;k++)
                for(h=0;h<2;h++)
                {
                    a[n++]=dd[i];
                    a[n++]=dd[j];
                    a[n++]=dd[k];
                    a[n++]=dd[h];
                }
}

int main()
{   
    int s[64]={0};
    FILE *fp_create_well_info=NULL;
    int j=0;
    int c[2][2];

    fp_create_well_info=fopen("create_well_info.txt","w") ;
    //建立16个2*2矩阵的所有数据的总数据表
    getArr64(s);


    for(int k=0; k<=15; k++)
    {
        for(int u=0; u<2; u++)
        {
            for(int v=0; v<2; v++)   
            {
                c[u][v]=s[j++];
                fprintf(fp_create_well_info,"%5d ",c[u][v]);
            }
            fprintf(fp_create_well_info,"\n");
        }
        fprintf(fp_create_well_info,"\n");
    }
   fclose(fp_create_well_info);

    return 0;
}
2014-04-30 22:58
风的飞扬0102
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-4-22
收藏
得分:0 
回复 7 楼 kwxx
我不仅仅需要这16个数组的文本,我那个M,N还要继续变,二维数组的总长度是由N*M确定的,所以j=n*m-1,输出的数组会越来越多,2*2这只是一个例子,能再帮我检查一下吗?

[ 本帖最后由 风的飞扬0102 于 2014-5-1 08:44 编辑 ]
2014-05-01 08:24
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
那就涉及到m*n个数的全排列了。你查查相关全排列的程序。修改一下函数void getArr64(int a[]);。
2014-05-01 09:20
风的飞扬0102
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-4-22
收藏
得分:0 
回复 9 楼 kwxx
好的,谢谢了!我查一下相关知识。但我想问一下,我怎么从文件里面读出任意一个二维数组,可不可以帮我在此基础上写个程序,我不太懂文件这方面的知识,麻烦了!

[ 本帖最后由 风的飞扬0102 于 2014-5-1 10:10 编辑 ]
2014-05-01 10:08
快速回复:请大家帮帮忙,谢谢了!
数据加载中...
 
   



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

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