白小白oo 2022-05-14 15:52 采纳率: 75%
浏览 26
已结题

这个函数讲的是什么意思?求详解!

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;
}
}

  • 写回答

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;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月22日
  • 已采纳回答 5月14日
  • 创建了问题 5月14日

悬赏问题

  • ¥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 支付宝网页转账系统不识别账号