想做一些奇特的格式化。我有几行我想互相交流。获取前两行。打印出第二行中的字符乘以第一行中的整数。用星号字符分隔它们。最后一个字符打印后没有星号。移至下一个整数和字符。在一个单独的行上打印它们。为整个列表做这个。我遇到的问题是在单独的行上打印它们。例如:getline问题C++
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”。
几天前我问了这个问题。它不包含我的代码。它被搁置。我编辑了这些问题,并在24小时前将其标记为主持人审查。主持人或将其搁置的人没有回应,所以我重申了一遍。
,你认为' “ENDL” 或 “\ n”'从何而来? –
'std :: getline'函数不会将行尾字符放入输入字符串中。 –
另请注意:[为什么iostream :: eof在循环条件内被认为是错误的?](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) –