注册 登录
编程论坛 C语言论坛

输出的内容太长,如何查看全部输出内容。请指教!!

自学的数学 发布于 2018-02-21 11:20, 3203 次点击
俺根据需要,编写了如下一段代码,由于输出的内容太长,如何查看全部输出内容。请指教!!

#include <stdio.h>
main()
{
    int a[13][13];
    int i, j, k, n,c,d;
    for (i=0; i<8192; ++i)
    {
        for (j=12; j>=0; --j)
        {
            n = (i>>j)&1;
            for (k=0; k<13; ++k)
                a[12-j][k] = n;
        }
         for (c=0; c<13; ++c)
            {
              for (d=0; d<13; ++d)
              printf("%d ", a[c][d]);
              printf("\n");
               }
      
        printf("\n");
         }
}
17 回复
#2
loboce2018-02-21 12:05
可以用文件输入输出函数建立一个txt文本,然后把你输出的数据全部写去到文本里。你可以随时随地地查看任何内容。这个是思路。你可以自己去写,有问题可以再找我
#3
九转星河2018-02-21 12:32
要保存就用把数据写进文件,如果分段查看就在断点处加个getchar就可以了~
#4
自学的数学2018-02-21 22:18
我还没有学过文件部分呢,假如我在D盘根目录下建立了一个名叫wenjian.txt 的文件,那么怎么样把输出的数据全部写去到文本里去呢?在程序里怎么修改呢??请指教!!
#5
loboce2018-02-22 20:58
//该代码仅为解答楼主所用
//代码在原代码基础上作少量改动
//输出效果跟原代码一样
//只是转到了txt文本方便查看
#include <stdio.h>
#include <stdlib.h> //包含exit()函数的头文件
int main(void)????? //C99标准
{
??? FILE *fp;??????????? //文件指针声明
??? int a[13][13];
??? int i, j, k, n,c,d;
//下面开始建立txt文件,可以向里面写入数据
??? if ((fp = fopen ("D:\\wenjian.txt", "a+")) == NULL)
{
??? printf("打开文件失败\n");
??? exit(1);
}
??? for (i=0; i<8192; ++i)
??? {
??????? for (j=12; j>=0; --j)
??????? {
??????????? n = (i>>j)&1;
??????????? for (k=0; k<13; ++k)
??????????????? a[12-j][k] = n;
??????? }
???????? for (c=0; c<13; ++c)
??????????? {
????????????? for (d=0; d<13; ++d)
????????????? fprintf(fp, "%d \n", a[c][d]);? /*这里把数组写入文件 */
?????????????
??????????????}
???????? }
printf("文件写入完毕,请打开D:\wenjian.txt查看\n");
fclose(fp); //关闭文件
return 0;
}
//代码未经调试,请自行调试。大神请飘过,哈哈

#6
loboce2018-02-22 21:02
编译的时候请把那些问号删掉,我回帖的时候网站自动添加的
#7
自学的数学2018-02-23 12:21
我试过了,但是文件里的内容显示为
只有本站会员才能查看附件,请 登录

为啥不是
只有本站会员才能查看附件,请 登录

我要的是后图的效果,请问,还需要做何修改呢?
#8
wp2319572018-02-23 20:36
使用写字板打开那个文本文件试试看
#9
ehszt2018-02-23 20:53
可以用重定向
把程序名改为一个简单的,比如a.exe,将它拷到c:
进入命提示符cmd
在c:盘下输入a.exe > a.txt
打开a.txt看看,输出内容都在里面。
#10
loboce2018-02-23 21:20

#include <stdio.h>
#include <stdlib.h>
int main(void)?????
{
??? FILE *fp;???????????
??? int a[13][13];
??? int i, j, k, n,c,d;

??? if ((fp = fopen ("D:\\wenjian.txt", "a+")) == NULL)
{
??? printf("打开文件失败\n");
??? exit(1);
}
??? for (i=0; i<8192; ++i)
??? {
??????? for (j=12; j>=0; --j)
??????? {
??????????? n = (i>>j)&1;
??????????? for (k=0; k<13; ++k)
??????????????? a[12-j][k] = n;
??????? }
???????? for (c=0; c<13; ++c)
??????????? {
????????????? for (d=0; d<13; ++d)
????????????? fprintf(fp, "%d \n", a[c][d]);?
?????????????
??????????????}
              printf("\n");       /*你想要的效果在这里,我只是把你的这个换行符删掉而已*/
???????? }
fclose(fp);
return 0;
}


#11
自学的数学2018-02-23 22:08
回复10楼的老师:
   无论把你注明的printf("\n"); 做任何修改,或者把它改在fprintf(fp, "%d \n", a[c][d])下面,效果都一样,就是7楼我觉得不满意的那幅图那样。
回复8楼的老师:
    还是不行,效果都还是7楼我觉得不满意的那幅图那样。
#12
Knocker2018-02-24 13:48
#include <stdio.h>

int main()
{
    int i, j, k, n;
    static int tem[8192][13][13];//静态或全局
    for (i=0; i<8192; ++i)
    {
        for (j=12; j>=0; --j)
        {
            n = (i>>j)&1;
            for (k=0; k<13; ++k)
              tem[i][12-j][k] = n;
        }
    }
    //以下可以操作你的数组
   
    return 0;
}
#13
吹水佬2018-02-24 14:05
13*13,13列都一样,为何一定要用13列表示?
#14
自学的数学2018-02-24 22:00
列数多少都一样的,都可以,只是看怎么输出到文件里,要象输出到屏幕一样的效果。该提行的要提行,要明显的看得出是二维数组就可以了,不要满屏显示,不分段落似的。
#15
loboce2018-02-24 22:19
是fprintf(fp,"\n");不是printf("\n");是我的错,可能整坏你了
#16
自学的数学2018-02-24 22:37
回复 15楼 loboce
你说的是这样的吧:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
int a[13][13];
 int i, j, k, n,c,d;

if ((fp = fopen ("D:\\wenjian.txt", "a+")) == NULL)
{
printf("打开文件失败\n");
 exit(1);
}
for (i=0; i<8192; ++i)
 {
 for (j=12; j>=0; --j)
 {
 n = (i>>j)&1;
 for (k=0; k<13; ++k)
 a[12-j][k] = n;
 }
 for (c=0; c<13; ++c)
 {
 for (d=0; d<13; ++d)
 fprintf(fp, "%d \n", a[c][d]);
 
}
              fprintf(fp,"\n");      /*你想要的效果在这里,我只是把你的这个换行符删掉而已*/
 }
fclose(fp);
return 0;
}

还是不对,它成了如图:
只有本站会员才能查看附件,请 登录
#17
自学的数学2018-02-24 22:55
成功了,俺终于弄好了。请看:
只有本站会员才能查看附件,请 登录
#18
自学的数学2018-02-24 22:56
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
int a[13][13];
 int i, j, k, n,c,d;

   if ((fp = fopen ("D:\\wenjian.txt", "a+")) == NULL)
      {
        printf("打开文件失败\n");
        exit(1);
      }
   for (i=0; i<8192; ++i)
       {
           for (j=12; j>=0; --j)
               {
                   n = (i>>j)&1;
                   for (k=0; k<13; ++k)
                      a[12-j][k] = n;
               }
           for (c=0; c<13; ++c)
              {
                 for (d=0; d<13; ++d)
                 fprintf(fp, "%d ", a[c][d]);
                 fprintf(fp,"\n");      /*你想要的效果在这里,我只是把你的这个换行符删掉而已*/
               }
              
       }
   fclose(fp);
   return 0;
}
1