void edit(char (*lines)[MAXC])
{
int i,index;
system("cls"); //clrscr();
for(i=0,index=0; i<MAXL; i++)
if(lines[i][0]!=0)
{
index++;
printf("%d:%s",index,lines[i]);
}
printf("\n\nPlease type a new line:\n");
fflush(stdin);
for(i=0; i<MAXL; i++) //当输入的i小于可输入的最大行数时,i=i+1
{
if(lines[i][0]=='\0') /每行第一个字符作为标志位 空行可写入/
{
fgets(lines[i],MAXC,stdin);
return;
}
else
continue;
}
}
这个函数讲的是什么意思?求详解!
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- a5156520 2022-05-14 17:03关注
大概意思就是先输出lines字符数组指针后面指向的字符串,然后获取一行输入到追加到最后字符串的下一个字符数组里面,下面是我的理解和一个测试的例子,供参考,如下:
#include <stdio.h> #include <stdlib.h> #define MAXC 20 #define MAXL 10 void edit(char (*lines)[MAXC]) { int i,index; system("cls"); //clrscr(); 清空控制台的显示 for(i=0,index=0; i<MAXL; i++) //循环遍历lines字符数组指针指向的各字符串并打印 if(lines[i][0]!=0) //如果当前字符指针指向的不是空字符串 ,则打印此字符床 { index++; printf("%d:%s\n",index,lines[i]); } printf("\n\nPlease type a new line:\n"); fflush(stdin); //清空输入缓存,以便下次输入的是输入的新数据,而不是缓存中的旧数据 for(i=0; i<MAXL; i++) //当输入的i小于可输入的最大行数时,i=i+1 { if(lines[i][0]=='\0') //每行第一个字符作为标志位 空行可写入 { fgets(lines[i],MAXC,stdin); //从标准输入中获取最长MAXC个字符的一行输入 return; } else //如果没有输入换行,则继续读入 continue; } } int main(void) { char lines[MAXL][MAXC]={"abcd","defg","hijk","lmno","opqr"}; edit(lines); printf("after add , new lines is :\n"); int i; int index; for(i=0,index=0; i<MAXL; i++) if(lines[i][0]!=0) { index++; printf("%d:%s\n",index,lines[i]); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录