2016-10-02 8 views
-3

멋진 포맷을 원하십니까? 나는 서로 상호 작용하기를 원하는 몇 줄을 가지고 있습니다. 처음 두 줄 가져와. 두 번째 라인의 문자와 첫 번째 라인의 정수를 곱합니다. 별표 문자로 모두 구분하십시오. 마지막 문자가 인쇄 된 후에는 별표가 인쇄되지 않습니다. 다음 정수와 문자로 이동하십시오. 그것들을 별도의 줄에 인쇄하십시오. 전체 목록에 대해 이렇게하십시오. 내가 겪고있는 문제는 그것들을 별도의 줄에 인쇄하는 것이다. 예 :출력 포맷하기 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"을 출력해야합니다.

응답 해 주셔서 감사합니다.

답변

0

아직 코드를 표시하지는 않았지만 문자가 인쇄 될 때마다 줄 바꿈을 추가하는 것을 잊어 버렸습니다. 예를 들어, 당신은 아마했을 :

std::cout << "!"; 

글쎄, 당신은 여기에 두 가지 옵션이 있습니다, 그래서 새로운 라인 ('\n')를 추가하는 것을 잊었다 이러한 맥락에서 :

std::cout << "! \n"; 
: 먼저 새로운 라인 자신을 삽입 둘의 비교를 위해

또는

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

std::endl;, herehere를 참조하십시오. 더 이상 설명이 없거나 더 중요한 것은 코드가 제대로 작동하지 않는 것 같아서 제안을하거나 문제를 해결할 수 없습니다.

+0

두 번째 문제 인 불필요한 후행 '*'문자는 다루지 않습니다. – IInspectable

+0

@IInspectable 잘, 그는 코드를 보여주지 않았으므로 이것은 완전한 예측입니다. 나는 그가 for 루프를 사용하여 인쇄 한 것을 추측하고 있으며 우연히 필요한 것보다 하나 이상의 반복이 있었습니까? 그러나 그가 코드를 보여주지 않는다면 어떻게 "불필요한 후행"* 문자를 발생시키는 원인을 알았겠습니까? – amanuel2

+1

당신은 알면 안됩니다. 어느 쪽도 질문에 대답하지 않아야합니다. 그것은 주제 밖입니다. – IInspectable