慵懒的小林 2022-02-27 14:34 采纳率: 0%
浏览 44

while (~scanf("%c\n", &ch)) 出错


#include <stdio.h>
#include <ctype.h>
int main()
{
    char ch = 0;
    while (~scanf("%c\n", &ch))
    {
        if (isupper(ch))
            printf("%c\n", tolower(ch));
        else
            printf("%c\n", toupper(ch));
    }
    return 0;
}

这是结果

img


不懂为什么会错位

  • 写回答

2条回答 默认 最新

  • 关注

    你把\n去掉就好了,不然还得读取回车
    while (~scanf("%c", &ch))

    
    #include <stdio.h>
    #include <ctype.h>
    int main()
    {
        char ch = 0;
        while (~scanf("%c", &ch))
        {
    
            if (isupper(ch))
                printf("%c", tolower(ch));
            else
                printf("%c", toupper(ch));
        }
        return 0;
    }
    
    
    

    img


    如有帮助,请点击我评论上方【采纳该答案】按钮支持一下,谢谢!以后有什么问题可以互相交流。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 2月27日