#29484: 各位求救\b的用法


alex950301 (alex0301)

學校 : 新北市立新莊高級中學
編號 : 141423
來源 : [49.159.246.211]
最後登入時間 :
2024-10-19 20:13:44
e456. Ten little Indians -- 板橋高中Python教學題 | From: [61.64.1.159] | 發表日期 : 2022-03-05 22:07

#include <iostream>

#include <sstream>

Dev c++ 上可以用 是不是有什麼方法可以在這上面退格

#include <string>

using namespace std;

int main() {

stringstream ss;

string s;

while( getline( cin , s ) ) {

ss.clear() ;

ss.str(s) ;

string sss ;

while( ss >> sss ) {

cout << sss << " little, " ;

}

cout << "\b\b" << " " << "Indians" << endl ;

}

return 0 ;

}

 
#29486: Re:各位求救\b的用法


linlincaleb@gmail.com (臨末之頌)

學校 : 新北市立板橋高級中學
編號 : 132772
來源 : [203.64.161.123]
最後登入時間 :
2024-07-29 10:02:49
e456. Ten little Indians -- 板橋高中Python教學題 | From: [111.248.161.210] | 發表日期 : 2022-03-06 00:36

#include

#include

Dev c++ 上可以用 是不是有什麼方法可以在這上面退格

#include

using namespace std;

int main() {

stringstream ss;

string s;

while( getline( cin , s ) ) {

ss.clear() ;

ss.str(s) ;

string sss ;

while( ss >> sss ) {

cout << sss << " little, " ;

}

cout << "\b\b" << " " << "Indians" << endl ;

}

return 0 ;

}

寫程式那麼久,從來沒用過\b XD

 
#29487: Re:各位求救\b的用法


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
e456. Ten little Indians -- 板橋高中Python教學題 | From: [27.247.9.93] | 發表日期 : 2022-03-06 08:46

#include

#include

Dev c++ 上可以用 是不是有什麼方法可以在這上面退格

#include

using namespace std;

int main() {

stringstream ss;

string s;

while( getline( cin , s ) ) {

ss.clear() ;

ss.str(s) ;

string sss ;

while( ss >> sss ) {

cout << sss << " little, " ;

}

cout << "\b\b" << " " << "Indians" << endl ;

}

return 0 ;

}


不能,因為\b的作用是把位置往前移,並不是刪除字元。你的程式在 Dev c++上只是看起來正確而已,如果是輸出到檔案就能清楚看到真正的輸出

$ echo "One Two Three" | ./cpp > out && cat -A out
One little, Two little, Three little, ^H^H Indians$

 
#29488: Re:各位求救\b的用法


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
e456. Ten little Indians -- 板橋高中Python教學題 | From: [27.247.9.93] | 發表日期 : 2022-03-06 08:50

#include

#include

Dev c++ 上可以用 是不是有什麼方法可以在這上面退格

#include

using namespace std;

int main() {

stringstream ss;

string s;

while( getline( cin , s ) ) {

ss.clear() ;

ss.str(s) ;

string sss ;

while( ss >> sss ) {

cout << sss << " little, " ;

}

cout << "\b\b" << " " << "Indians" << endl ;

}

return 0 ;

}


不能,因為\b的作用是把位置往前移,並不是刪除字元。你的程式在 Dev c++上只是看起來正確而已,如果是輸出到檔案就能清楚看到真正的輸出

$ echo "One Two Three" | ./cpp > out && cat -A out
One little, Two little, Three little, ^H^H Indians$


呃,格式跑掉了,用擷圖https://i.imgur.com/lYWyDsp.png

 
#29491: Re:各位求救\b的用法


alex950301 (alex0301)

學校 : 新北市立新莊高級中學
編號 : 141423
來源 : [49.159.246.211]
最後登入時間 :
2024-10-19 20:13:44
e456. Ten little Indians -- 板橋高中Python教學題 | From: [61.64.1.159] | 發表日期 : 2022-03-06 12:41

那請問有什麼方法可以改嗎~

 
#29492: Re:各位求救\b的用法


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
e456. Ten little Indians -- 板橋高中Python教學題 | From: [27.247.9.93] | 發表日期 : 2022-03-06 13:29

那請問有什麼方法可以改嗎~


方法很多啊,例如

1. 把答案存在string裡面,就能用erase或pop_back刪除,最後再一次輸出一行

2. 一次讀取一個字元,遇到空格輸出" little, ",遇到換行輸出" little Indians",其他狀況輸出輸入的字元

3. 第一個字和最後一個字另外處理

 
#29656: Re:各位求救\b的用法


alex950301 (alex0301)

學校 : 新北市立新莊高級中學
編號 : 141423
來源 : [49.159.246.211]
最後登入時間 :
2024-10-19 20:13:44
e456. Ten little Indians -- 板橋高中Python教學題 | From: [210.71.72.34] | 發表日期 : 2022-03-18 15:35

感謝~

但請問我有什麼贅字嗎?

感覺有點多

#include <iostream>

#include <sstream>

#include <string>

#include <vector>

using namespace std;

int main() {

    int i , j ;

stringstream ss;

string s;

while( getline( cin , s ) ) {

ss.clear() ;

ss.str(s) ;

string sss ;

vector<string> vec ;

while( ss >> sss ) {

    string ssss = " little, " ;

    vec.push_back(sss) ;

    vec.push_back(ssss) ;

}

vec.pop_back() ;

    string b = " little" ;

    vec.push_back(b) ;

    j = vec.size() ;

    for( i = 0 ; i < j ; i++ ) {

        cout << vec[i] ;

    }

    cout << " Indians" << endl ;

}

return 0 ;

}

 

 
#29658: Re:各位求救\b的用法


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
e456. Ten little Indians -- 板橋高中Python教學題 | From: [110.26.132.59] | 發表日期 : 2022-03-18 21:49

    string ssss = " little, " ;


    vec.push_back(ssss) ;


 

push_back()後面直接放字串就可以少一行了

另外不需要用到vector吧,用string就夠了

 
ZeroJudge Forum