#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 ;
}
#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
#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$
#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$
呃,格式跑掉了,用擷圖
那請問有什麼方法可以改嗎~
那請問有什麼方法可以改嗎~
方法很多啊,例如
1. 把答案存在string裡面,就能用erase或pop_back刪除,最後再一次輸出一行
2. 一次讀取一個字元,遇到空格輸出" little, ",遇到換行輸出" little Indians",其他狀況輸出輸入的字元
3. 第一個字和最後一個字另外處理
感謝~
但請問我有什麼贅字嗎?
感覺有點多
#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 ;
}
string ssss = " little, " ;
vec.push_back(ssss) ;
push_back()後面直接放字串就可以少一行了
另外不需要用到vector吧,用string就夠了