#include <iostream>
#include <cmath>
#include <stdio.h>
using namespace std;
int main(){
FILE* file = NULL;
file = fopen("main.cpp", "r");
if (NULL == file) {
cerr << "Cann't open the file." << endl;
return 1;
}
char** line = NULL;
line = new char*[60];
for (int i = 0; i < 60; i++) {
line[i] = new char[80];
line[i][0] = '\0'; // 关键就在这里,如果不把每个串的第一个字符设为0,则在输出时,如果源文件的最后一行是空行,
// 则最后一行是两个字符的乱码(x ?=),这有可能是跟读到文件末时的文件结束标志有关。
}
int row = 0;
while (!feof(file)) {
fgets(line[row++], 80, file); // 每读取一行后,记录读取的行数加一。
}
fclose(file);
for (int i = 0; i < row; i++) {
cout << line[i];
}
return 0;
}