qq_35174462 2022-08-21 18:11 采纳率: 83.3%
浏览 240
已结题

c语言scanf逗号引发乱码问题

scanf 乱码
while (1)
{
    system("cls");
    printf("1:Input person information\n");
    printf("2:Display person information\n");
    printf("3:Exit\n");
    int input;
    scanf("%d", &input);
    system("cls");
    while (input == 1)
    {

        printf("Please input:\nname\ngender\nheight\nweight\n");
        //scanf("%s %s %lf %lf", &name[numPerson], &gender[numPerson], &height[numPerson], &weight[numPerson]);
        scanf("%s,%s,%lf,%lf", &arr[numPerson].name,&arr[numPerson].gender,&arr[numPerson].height,&arr[numPerson].weight);
        /*scanf("%s", &name[numPerson]);
        scanf("%s",&gender[numPerson]);
        scanf("%lf",&height[numPerson]);
        scanf("%lf",&weight[numPerson]);*/
        numPerson++;
        system("cls");
        printf("Keep on input information?\n 1:Yes\n 2:No\n");
        scanf("%d",&choose);
        if (choose == 2)
        {
            break;
        }
    }
    if (input == 2)
    {
     printf("Display input name,gender,height and weight information\n");
     for (int i = 0; i < numPerson;i++)
     {
        //printf("Name:%s\nGender:%s\nHeight:%lf\nWeight:%lf\n", name[i], gender[i], height[i], weight[i]);
         printf("Name:%s\nGender:%s\nHeight:%lf\nWeight:%lf\n", arr[i].name, arr[i].gender, arr[i].height, arr[i].weight);
        putchar('\n');
        
     }
     system("pause");
    }
    else if (input == 3)
        break;
}

img

改为scanf("%s %s %lf %lf", &arr[numPerson].name,&arr[numPerson].gender,&arr[numPerson].height,&arr[numPerson].weight);显示正确
为什么此处scanf用逗号会吧所有输入都给到name这一部分?
  • 写回答

4条回答 默认 最新

  • 叶落秋白 后端领域优质创作者 2022-08-21 18:54
    关注

    %s不是字符串的占位符吗,用逗号是不符合规范的,scanf里每出现一个占位符,后面就要跟一个变量的引用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月29日
  • 已采纳回答 8月21日
  • 创建了问题 8月21日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程