首页 > 解决方案 > 输出在 C++ 中有额外的 % 符号

问题描述

int n,t;
cin>>n>>t;
char arr[n];
for(int i=0;i<n;i++){
    cin>>arr[i];
}
// for(int i=0;i<n;i++){
//     cout<<arr[i];
// }
while(t>0){
    for(int i=0;i<n-1;i++){
        if((arr[i]=='B')&&(arr[i+1]=='G')){
            char temp = arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = arr[i];
            i++;
        }
    }
    --t;
}
for(int i=0;i<n;i++){
    cout<<arr[i]<<" ";
}

我在打印输出时得到一个额外的 % 符号 就像输入是 BGGBG 输出显示为 GGBGB%

标签: c++arrays

解决方案


额外的“%”不是您的程序打印的内容。这只是您的外壳添加的内容,告诉您文本后没有换行符。

为了轻松检查这一点,您可以将程序输出重定向到文件。您会看到“%”字符不会出现在文件中。

或者,如果您在程序末尾打印换行符,您将不会在 shell 中看到“%”字符。


推荐阅读