《C Primer Plus》13.11.12题目

图片说明

图片说明

//《C Primer Plus》p438 13.11.12
#include <stdio.h>
#include <stdlib.h>
#define NAME 20
#define ROWS 20
#define COLS 30

int main(void)
{
    FILE * f_n, * f_p;
    char name_n[NAME];
    char name_p[NAME] = "picture";
    int numbers[ROWS][COLS];
    char chs[] = " .':~*=&%#";
    char picture[ROWS][COLS + 1];


    printf("Enter the numbers_file name:");
    scanf("%s", name_n);

    if ((f_n = fopen(name_n, "r")) == NULL)
    {
        fprintf(stderr, "Can't open \"%s\" file.\n", name_n);
        exit(EXIT_FAILURE);
    }
    if ((f_p = fopen(name_p, "w")) == NULL)
    {
        fprintf(stderr, "Can't open \"%s\" file.\n", name_p);
        exit(EXIT_FAILURE);
    }

    int i, j;
    for (i = 0; i < ROWS; i++)
    {
        for (j = 0; j < COLS; j++)
        {
            fscanf(f_n, "%d", &numbers[i][j]);
            picture[i][j] = chs[numbers[i][j]]; 
        }
        picture[i][j] = '\0';
        fprintf(f_p, "%s\n", picture[i]);
    }

    if (fclose(f_n) != 0)
    {
        fprintf(stderr, "Error closing \"%s\" file.\n", name_n);
        exit(EXIT_FAILURE);
    }
    if (fclose(f_p) != 0)
    {
        fprintf(stderr, "Error closing \"%s\" file.\n", name_p);
        exit(EXIT_FAILURE);
    }
    printf("Done.\n");

    return 0;
}

源数据是这样的
0 0 9 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 2 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 9 0 0 0 0 0 0 0 5 8 9 9 8 5 5 2 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 5 8 1 9 8 5 4 5 2 0 0 0 0 0 0 0 0 0
0 0 0 0 9 0 0 0 0 0 0 0 5 8 9 9 8 5 0 4 5 2 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 1 8 5 0 0 4 5 2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 4 5 2 0 0 0 0 0 0
5 5 5 5 5 5 5 5 5 5 5 5 5 8 9 9 8 5 5 5 5 5 5 5 5 5 5 5 5 5
8 8 8 8 8 8 8 8 8 8 8 8 5 8 9 9 8 5 8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 0 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 3 9 9 9 9 9 9 9
8 8 8 8 8 8 8 8 8 8 8 8 5 8 9 9 8 5 8 8 8 8 8 8 8 8 8 8 8 8
5 5 5 5 5 5 5 5 5 5 5 5 5 8 9 9 8 5 5 5 5 5 5 5 5 5 5 5 5 5
0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 0 6 6 0 0 0 0 0
0 0 0 0 2 2 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 5 6 0 0 6 5 0 0 0
0 0 0 0 3 3 0 0 0 0 0 0 5 8 9 9 8 5 0 0 5 6 1 1 1 1 6 5 0 0
0 0 0 0 4 4 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 5 6 0 0 6 5 0 0 0
0 0 0 0 5 5 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 0 6 6 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 5 8 9 9 8 5 0 0 0 0 0 0 0 0 0 0 0 0
编译调试都找不出问题
会运行很长时间
然后输出文件是空的
似乎就是写入不了
求解
图片说明

qq_44857348
追着繁星的小流氓 W+模式写入,w模式下不可见
9 个月之前 回复

1个回答

眼睛不好,看不清楚题目
https://download.csdn.net/download/qq_41950696/10653912
这里有答案

建议你首先下断点检查哪里耗时很长,还有检查你文本文件的内容,用记事本打开,另存为,编码选择ansi

DWadeNW
Flamel·Night Watcher 那我的程序本身有什么问题吗。这个循环600次断点检查太麻烦了
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐