想做一些奇特的格式化。我有幾行我想互相交流。獲取前兩行。打印出第二行中的字符乘以第一行中的整數。用星號字符分隔它們。最後一個字符打印後沒有星號。移至下一個整數和字符。在一個單獨的行上打印它們。爲整個列表做這個。我遇到的問題是在單獨的行上打印它們。例如: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) –