我知道有些人会说这个问题是重复的,但我真的找不到一个有用的答案。
假设我有以下程序:
#include <iostream>
#include <string>
using std::cout;
int main(){
std::string something;
cout<<"Type something";
std::cin>>something;
}如何使用setw()使输出看起来像这样?
Type something "then after some whitespaces for example 10 the user will start typing"我尝试在输出中使用setw():
#include <iostream>
#include <string>
#include <iomanip>
using std::cout;
int main(){
std::string something;
cout<<std::left<<std::setw(24)<<"Type something";
std::cin>>something;
}预期输出应该是:

实际输出为:

发布于 2021-09-22 19:40:37
我不能复制你说的,你给works fine for me看的代码。
#include <iostream>
#include <string>
#include <iomanip>
int main(){
std::string something;
std::cout << std::left << std::setw(24) << "Type something"; // prints "Type something "
std::cin >> something;
return 0;
}也就是说,您可以简单地输出一个包含所需空格数量的字符串:
#include <iostream>
#include <string>
int main(){
std::string something;
std::cout << "Type something ";
// alternatively:
// std::cout << "Type something" << std::string(10, ' ');
std::cin >> something;
}发布于 2021-09-22 19:34:28
一种可能的解决方案是在setw之后使用任何特殊字符
示例代码:
int main()
{
std::string something;
cout<< "Type something" << setw(24) << ":";
std::cin>>something;
}输出:
Type something :inputString
参考文献:
https://stackoverflow.com/questions/69289814
复制相似问题