C/C++關於行末空格的控制輸出

作爲一名編程算法競賽的常住選手,最近好多人在問我C/C++的輸出怎麼控制行末空格的問題。其實在我之前在刷題過程中,經常會遇到的輸出控制:“行末不要有空格”,我們用日常的輸出方式:

for(int i = 0;i < n;i++){
    cout << a[i] << " ";
}
或
for(int i = 0;i < n;i++){
    printf("%d ",a[i]);
}

這樣輸出評分系統會爆出錯誤提示:“格式錯誤”,其實這個時候你的答案已經做對了,只是在格式上出了點問題,那我們上面的輸出方式必然會有行末空格產生,怎麼處理這個問題呢

讓循環輸出不產生空格,那麼我們就要使用條件語句進行判斷,現提供如下方法僅供參考:

for(int i = 0;i < n;i++){
    if(i == 0){
        cout << a[i];
    } else{
        cout << " " << a[i];
    }
}
或
for(int i = 0;i < n;i++){
    if(i == 0){
        printf("%d",a[i]);
    } else{
        printf(" %d",a[i]);
    }
}

該方法就是讓第一次輸出只輸出第一個數,然後其他輸出在該數的前面加空格,這樣就完美解決了行末空格的問題。

另外,在其他平臺我看到了另外一種方法:

就是使用 “\b” 退格控制符來刪除行末空格,額。。。不過這種方法,小編親測沒有成功,因爲使用了 "\b" 以後評分系統依然爆出“格式錯誤”的提示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章