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

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 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip