文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言中%*s的*有什么作用

2023-06-27 10:08

关注

这篇“C语言中%*s的*有什么作用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言中%*s的*有什么作用”文章吧。

取决于在 scanf 中使用还是在 printf 中使用。

  1. scanf 中使用,则添加了*的部分会被忽略,不会被参数获取。例如:

    int a,b;char b[10];scanf("%d%*s",&a,b);

    输入为:12 abc 那么12将会读取到变量 a 中,但是后面的 abc 将在读取之后抛弃,不赋予任何变量(例如这里的字符数组b

  2. printf 中使用,表示用后面的形参替代的位置,实现动态格式输出。例如:

    printf("%s", 10, s);/意思是输出字符串 s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于 printf("%10s", s);*/
  3. 在举个例子,假如要打印 linux 根文件系统下的 /proc/x/status 中的第一行 “Name: login”,如下

[root@sz /proc/898]#cat status Name:   loginState:  S (sleeping)Tgid:   898Pid:    898PPid:   519TracerPid:      0Uid:    0       0       0       0Gid:    0       0       0       0FDSize: 32Groups:VmPeak:     1232 kBVmSize:     1232 kBVmLck:         0 kBVmPin:         0 kBVmHWM:       312 kBVmRSS:       312 kBVmData:       64 kBVmStk:       136 kBVmExe:       708 kBVmLib:       312 kBVmPTE:         8 kBVmSwap:        0 kBThreads:        1SigQ:   0/469SigPnd: 0000000000000000ShdPnd: 0000000000000000SigBlk: 0000000000000000SigIgn: 0000000000000000SigCgt: 0000000000002000CapInh: 0000000000000000CapPrm: 0000001fffffffffCapEff: 0000001fffffffffCapBnd: 0000001fffffffffCpus_allowed:   1Cpus_allowed_list:      0Mems_allowed:   1Mems_allowed_list:      0voluntary_ctxt_switches:        1nonvoluntary_ctxt_switches:     2

为了只获取 “Name: login”中的 login,可以采用如下

//描述: 线程是否存在//返回: 成功表示存在,返回true,反之为false。bool IsThreadExist(char *task_name) {     DIR *dir;     struct dirent *ptr;     FILE *fp;     char filepath[50];     char cur_task_name[50];     char buf[BUF_SIZE];     bool fRet = false;     dir = opendir("/proc");      if (NULL != dir)     {         while ((ptr = readdir(dir)) != NULL)         {             if ((strcmp(ptr->d_name, ".") == 0) || (strcmp(ptr->d_name, "..") == 0))                 continue;             if (DT_DIR != ptr->d_type)                 continue;             sprintf(filepath, "/proc/%s/status", ptr->d_name);             fp = fopen(filepath, "r");             if (NULL != fp)             {                 if( fgets(buf, BUF_SIZE-1, fp)== NULL ){                     fclose(fp);                     continue;                 }                 sscanf(buf, "%*s %s", cur_task_name);                 if (strcmp(task_name, cur_task_name) == 0){                     fRet = true;                 }                 fclose(fp);             }         }         closedir(dir);     }     return fRet; }

以上就是关于“C语言中%*s的*有什么作用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯