如何动态读入文件中的每一行输入到二维数组(C)

如何动态读入文件中的每一行输入到二维数组(C),第1张

#include <stdio.h>

main(){

FILE *fp

char **nm // 声明

char tmp[30]

int i,j,n

fp = fopen("username.txt","r") //打开文件

n=0

while(1){

if (fgets(tmp,30,fp)==NULL) break

n++

}

printf("n=%d\n",n) // 输出行数

rewind(fp) // 文件回绕到开始

// 动态分配

nm = (char **) malloc(sizeof(char *) * n)

for (j=0j<nj++){

nm[j] = (char *) malloc(sizeof(char) * 30)

}

for (i=0i<ni++){

if ( fgets(tmp,30,fp)==NULL) break // 读取整行,允许名字中间带空白

strcpy(nm[i],tmp) //存放 名字

}

fclose(fp) // 关闭文件

for (j=0j<nj++) printf("%s",nm[j]) //数组使用

// 释放内存 ( 不释放也可以)

// for (j=0j<nj++) free(nm[j])

// free(nm)

return 0

}

你是想把上次显示的擦除,然后斜着向下移动吧。

有几种方法可以试下。而且感觉你只是想在文本模式下做这件事,在图形模式下方式又不同。

文本模式下有几种思路:

printf (“欢迎使用本系统”) 

printf(\b) 删除符,把这行删除,至于打印几个\b, 看你情况

printf(\n) 移到下一行

printf("空格  “欢迎使用本系统”),至于几个空格,依据你斜的程度来自己决定

中间为了适应频度,可以delay几毫秒

第二种方法

1.和上面一样,只是第2步上,调用系统调用cls擦除屏幕,然后打印n个\n移动下面某行上。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11821921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存