C++ 如何使用cout将文本向右对齐?

C++ 如何使用cout将文本向右对齐?,c++,string,output,cout,right-align,C++,String,Output,Cout,Right Align,假设我有一个字符串s,如下所示: string s="i am\ngoing\nto\ncuet"; 我想在console中显示时将字符串向右对齐。所以我想这样显示输出: i am going to cuet 编辑:最右边的字符应该对齐 i am

假设我有一个字符串s,如下所示:

string s="i am\ngoing\nto\ncuet";
我想在console中显示时将字符串向右对齐。所以我想这样显示输出:

                                                         i am
going
to
cuet
编辑:最右边的字符应该对齐

                                      i am
                                     going
                                        to
                                      cuet
我尝试了以下代码来显示输出:

cout.width(75);
cout<<s;
for(int i=0 ; i<s.size(); i++)
    {
        cout.width(75);
        cout<<s[i];
    }
然后我尝试了以下代码以获得输出:

cout.width(75);
cout<<s;
for(int i=0 ; i<s.size(); i++)
    {
        cout.width(75);
        cout<<s[i];
    }

如何获得所需的输出?

您需要逐行阅读
s
,然后将每一行右对齐输出

#include <iostream>
#include <iomanip>
#include <sstream>

void printRightAlignedLines(const std::string& s, int width)
{
    std::istringstream iss(s); //Create an input string stream from s
    for (std::string line; std::getline(iss, line); ) //then use it like cin
        std::cout << std::setw(width) << line << '\n';
}

int main()
{
    std::string s = "i am\ngoing\nto\ncuet";
    printRightAlignedLines(s, 75);
}
#包括
#包括
#包括
void printRightAlignedLines(常量std::string&s,int-width)
{
std::istringstream iss(s);//从s创建输入字符串流
for(std::string-line;std::getline(iss,line);)//然后像cin一样使用它
std::cout
#包括
使用名称空间std;
int main(){
string s=“我正在\n继续\n继续\n继续”;
字符串p=“”;
对于(int i=0;s[i]!='\0';i++){
p=p+s[i];
如果(s[i]='\n'){
库特宽度(75);
库特
简单的队列解决方案:

#包括
使用名称空间std;
int main()
{
字符串str;
str=“我正在\n继续\n继续”;
队列q;
int i;
int len=str.size();

对于(i=0;它不是文本向右对齐的,您描述的文本也不是向右对齐的。向右对齐的文本的最右边字符对齐。您需要处理行,因此您的代码需要知道包含多行的字符串,并分别显式处理每行。它不是,也不是。@n.m.我如何处理合法地处理每一行?你能举个例子吗?有用的阅读:,并检查这个
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str;
str = "i am\ngoing\nto\ncuet";
queue <char> q;
int i;
int len=str.size();
for(i=0; i<len; i++)
{
if(i==len-1)q.push(str[i]);

    if(str[i]=='\n' || i==len-1)
    {
        cout.width(75);
        while(!q.empty())
        {
            cout<<q.front();
            q.pop();
        }
        cout<<"\n";
    }
    else
        q.push(str[i]);
}
return 0;
}