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也能过去
没有实现功能啊?