格式化输出C++

格式化输出C++,c++,cout,C++,Cout,想做一些奇特的格式化。我有几行要相互交流。获取前两行。打印出第二行中的字符乘以第一行中的整数。用星号字符将它们分开。打印最后一个字符后没有星号。移动到下一个整数和字符。在单独的行上打印它们。对整个列表执行此操作。我遇到的问题是将它们打印在不同的行上。例如: 5 ! 2 ? 3 # 期望输出: !*!*!*!*! ?*? #*#*# 我的输出: !*!*!*!*!*?*?*#*#*#* 下面是我的代码。另一件需要提及的事情是,我正在从一个单独的文本文件中读取有关字符和数字的数据。所以我使用的

想做一些奇特的格式化。我有几行要相互交流。获取前两行。打印出第二行中的字符乘以第一行中的整数。用星号字符将它们分开。打印最后一个字符后没有星号。移动到下一个整数和字符。在单独的行上打印它们。对整个列表执行此操作。我遇到的问题是将它们打印在不同的行上。例如:

5
!
2
?
3
#
期望输出:

!*!*!*!*!
?*?
#*#*#
我的输出:

!*!*!*!*!*?*?*#*#*#*
下面是我的代码。另一件需要提及的事情是,我正在从一个单独的文本文件中读取有关字符和数字的数据。所以我使用的是getline函数

下面是一段代码:

ifstream File
File.open("NumbersAndCharacters.txt")
string Number;
string Character;
while(!File.eof(){
  getline(File, Number);
  getline(File, Character);
//a few lines of stringstream action
  for (int i=0; i<=Number; i++){
      cout<<Character<<"*";}//end for. I think this is where
                            //the problem is.
  }//end while
File.close();
return 0;
错误在哪里?是环路吗?还是我不明白getline

它应该在每个字符相乘后打印一个endl或\n


谢谢大家的回复

您还没有显示代码,但这里的问题似乎是每次打印字符时都忘了添加新行。例如,您可能已经完成了:

std::cout << "!";
或std::endl


有关两者的比较,请参见和。如果没有进一步的描述,或者更重要的是,您的代码似乎无法正常工作,我们将无法提出建议或解决您的问题。

这没有解决第二个问题,即多余的尾随*字符。@i不可检测,他没有显示代码,因此这是一个完整的预测。我猜他是用for循环打印的,他不小心又多了一次迭代?但如果他不显示代码,我怎么知道是什么导致了多余的尾随*字符?你不应该知道。你也不应该回答问题,那是离题的。
std::cout << "! \n";
std::cout << "!" << std::endl;