初学者请问:getline中使用Tab制表符在.size()里如何计算的?
Accelerated C++ 第一章的例子,想用getline抓取带有空格的姓名,然后发现,输入姓名时用了Tab的话,输出就不能对齐了
- C/C++ code
int main(){ string sname; getline(cin, sname); const string greeting = "Hello, " + sname + "!"; const string blank(greeting.size(), ' '); const string second = "* " + blank + " *"; const string first(second.size(), '*'); cout << first << endl; cout << second << endl; cout << "* " << greeting << " *" << endl; cout << second << endl; cout << first << endl; return 0;}[解决办法]
string("\t").size() 看咯。size() 是计算字符数,不是宽度。
[解决办法]
get又不是输出,没有所谓setw之类的问题。读进来的tab永远是单字符,size当然是1