如题,如何用C语言把TXT文件中的单词表(多行)读入一个二维数组。
参考如下:
int main(int argc, const char * argv[]) {
FILE *pf;
// 路径test.txt修改为自己文件路径
pf = fopen("test.txt", "r+");
int line = 0; // 定义行数记录
if (pf != NULL) {
char a[100][100]; // 定义二维数组,数组个数限制根据需求修改
int i = 0, j = 0;
printf("file is exist!\n");
// 按字符读取:其实就是从文件中一个个读出字符出来
while (!feof(pf)) {
char c = fgetc(pf);
// 判断是否结束
if (c != '\377') {
// 判断是否换行
if (c != '\n') {
// printf("%c", c);
a[i][j] = c;
j++;
} else {
i++;
j = 0;
// printf("\n");
}
}
}
line = i;
printf("---------------\n");
i = 0; j = 0;
for (i = 0; i < line; i++) {
// 输出二维数组中每一行的数据。
printf("i = %d, %s\n", i, a[i]);
}
fclose(pf);
} else {
printf("file is not exist!\n");
}
}
fscanf 一个单词一个%s 读就行了
你说的二维数组就是字符串数组吧
假设数组为strarray[M][N]
直接一层循环读
比如 fscanf fp,"%s",strarray[i++]
保证二维数组列数与txt每行字符数一样的情况下,可以使用fgetc 循环获取,以fgetc == NULL 为结束条件