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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
- ¥500 火焰左右视图、视差(基于双目相机)
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号