涉及到C语言 请看以下图片

img


C语言 请看以上图片 为什么运行结果后面还有别的文字?是什么原因呢 望告诉解决方案 应该怎么消除呀

a和b当字符串用,但却没有写字符串结束符
在最后printf之前,加上b[t] = 0;

供参考:

img

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/1073367
  • 你也可以参考下这篇文章:C语言程序运行过程中出现烫烫烫问题的原因 及 解决方法
  • 除此之外, 这篇博客: 【C语言有什么用?①】从零开始撸一个用户态模拟文件系统中的 类终端功能实现 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • char* command[] = {"create_filesystem","init","low_init","info","mkfile","weishitu","delfile","deldir","help","ls","quit"};
    int commandnum = sizeof(command)/sizeof(char *);
    char path[100] = "file_system";//文件系统
    while(1){
            printf("%s$ ",path);
            scanf("%s",com);
            choice = i;
            for(i=0; i<commandnum; ++i)
                        if(strcmp(com,command[i])==0)
                            break;
            choice = i;
            if(Disk == -1 && (!(choice == 0|| choice == 10))){//未创建文件只能退出或者创建文件
                printf("文件系统未创建,请创建文件系统。");
                continue;
            }
            int a;
            read(Disk,&a,sizeof(int));
            if(Disk != -1 &&a == 0 && !(choice == 1 || choice == 2)){
                printf("未格式化,请格式化.");
                lseek(Disk,-sizeof(int),SEEK_CUR);
                continue;
            }
            lseek(Disk,-sizeof(int),SEEK_CUR);
            switch(choice){
                case 0://创建系统
                    create_filesystem();
                    break;
                case 1://格式化
                    init(1);
                    break;
                case 2://低级格式化
                    low_init();
                    break;
                case 3://查看信息
                    info();
                    break;
                case 4://创建文件
                    printf("输入你要创建的文件名: ");
                    char filename[20];
                    scanf("%s",filename);
                    create_file(filename);
                    break;
                case 5://查看位示图
                    weishi();
                    break;
                case 6://删除文件
                    printf("请输入你要删除的文件:");
                    char delname[20];
                    scanf("%s",delname);
                    delfile(delname);
                    break;
                case 8://帮助信息
                    help();
                    break;
                case 9://显示文件
                    ls();
                    break;
                case 10:    //退出系统
                    quit = 1;
                    break;
                default:
                    printf("%s command not found\n",com);
            }
    

    很显然,我定义了一个while1,然后根据输入命令的比较结果来选择执行哪个分支,默认就是重新回到开头。在程序运行的时候我已经做了打开文件的操作,因为我第超级块的前4个字节的数据是固定的不为0,所以我可以用它来判断是否已经格式化,然后其它的就是跳转到相应的功能中就好了0.0

    这只是基础程序框架,我们其它功能使用另外一个文件来实现