扫描问题( "%s" )

Issue with scanf("%s")

本文关键字:问题 扫描      更新时间:2023-10-16
include <iostream>
#include <stdio.h>
using namespace std;
int main() {
    int n;
    scanf("%d",&n);
    int l,k;
    for(int i=0;i<n;i++)
    {
        scanf("%d %d",&l,&k);
        char ch[l+1];
        /****/     scanf("%s",ch);
        printf("Are we here");
        char ci=ch[0];
        int flips=0;
        int count=0;
        for(int j=0;j<l;j++)
        {
            if(ch[j]==ci)
        {   
                count++;
                if(count>k)
                {
                flips++;
                count=1;
                if(ci=='1')
                {
                    ci='0';
                    ch[j]='0';
                }
                else if(ci=='0')
                {               
                    ci='1';
                    ch[j]='1';
                }
                }
            }
        else if(ch[j]!=ci)
        {
            if(ci=='1')
            ci='0';
            else if(ci=='0')
            ci='1';
            count=1;        
        }   

        }
        printf("n%d",flips);   
        printf("n%s",ch);    
    }
    return 0;
}

有3个测试用例的输入,每个测试用例有两行输入。

3
2 1
11
2 2
11
4 1
1001

应该给出输出

1
10
0
11
2
1010

这基本上是一个代码做一些标准的编程比赛的东西。它接受测试用例的数量,并且对于每个测试用例,用两行打印出所需的答案。现在,当我逐行输入所有输入时,它工作得很好,并且我得到了所有输出。但是当我把所有的输入复制粘贴在一起的时候,除了最后的输出,我只能得到所有的东西,我必须按回车键才能得到最后的输出。现在我做了一些基本的调试,发现它与scanf("%s",ch)行代码有关。任何帮助。而且我觉得节目的逻辑并不重要。

我认为"rn"在复制粘贴文本时没有被复制