首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c primer plus编程练习13.12的疑问解决方案

2012-03-07 
c primer plus编程练习13.12的疑问C/C++ code#include stdio.h#include stdlib.h#define ROWS20#defin

c primer plus编程练习13.12的疑问

C/C++ code
#include <stdio.h>#include <stdlib.h>#define ROWS    20#define COLS    30#define LEVELS    10const char trans[LEVELS + 1] = " .':~*=&%@";void MakePic(int data[][COLS], char pic[][COLS], int rows);void init(char arr[][COLS], char ch);int main(){    int row, col;    int picIn[ROWS][COLS];    char picOut[ROWS][COLS];    char fileName[40];    FILE * infile;        init(picOut, 'S');        printf("Enter name of file: ");    scanf("%s", fileName);    if ((infile = fopen(fileName, "r")) == NULL)    {        fprintf(stderr, "Could not open data file.\n");        exit(EXIT_FAILURE);    }        for (row = 0; row < ROWS; row++)        for (col = 0; col < COLS; col++)            fscanf(infile, "%d",  &picIn[row][col]);    if (ferror(infile))    {        fprintf(stderr, "Error getting data from file.\n");        exit(EXIT_FAILURE);    }    MakePic(picIn, picOut, ROWS);    for (row = 0; row < ROWS; row++)    {        for (col = 0; col < COLS; col++)            putchar(picOut[row][col]);        putchar('\n');    }    return 0;}void init(char arr[][COLS], char ch){    int r, c;    for (r = 0; r < ROWS; r++)        for (c = 0; c < COLS; c++)            arr[r][c] = ch;}void MakePic(int data[][COLS], char pic[][COLS], int rows){    int row, col;    for (row = 0; row < rows; row++)        for (col = 0; col < COLS; col++)            pic[row][col] = trans[data[row][col]];}


程序读取一个包含20行,每行30个整数的文本文件,输出每个整数对应的字符
上面的代码是参考答案,inti()函数什么作用,把picOut每个元素都赋值'S',MakePic又对picOut重新赋值,这样inti()不是多余了吗?

[解决办法]
是否有用处,你注释下就清楚了。参考答案这东西仅供参考。
[解决办法]
这程序有bug?
看着好像没啥问题,vc也能过去
没有实现功能啊?

热点排行