2012-11-02 3 views
1

몇 가지 도움이 필요합니다. 배열에 파일을 읽었습니다. 배열을 가져 와서 숫자가 포맷되도록 포맷해야합니다. 텍스트 파일은 숫자 목록 일뿐입니다. 예를 들어 처음 두 숫자를 가져 와서 "1-0"과 같이 콘솔에 출력되도록 포맷해야합니다. 지금까지 제 코드가 있습니다. 형식 지정이 수행되어야하는 불완전한 기능을 확인하십시오.배열 및 출력을 포맷하는 방법은 무엇입니까?

#include<iostream> 
#include<cmath> 
#include<cstdlib> 
#include<string> 
#include<fstream> 

using namespace std; 

string ArrayFormat(int array[]); 

int main() { 

const int ARRAY_SIZE = 21; 
string filename; 
ifstream inputfile; 

int score[ARRAY_SIZE]; 


cout <<"\nPlease enter the name of a file: "; 
cin >> filename; 

inputfile.open(filename.c_str()); 
if (inputfile.fail()){ 
    perror(filename.c_str()); 
    exit(1); 
}// end of error test 

for (int i=0;i<20;i++){ 
    inputfile >> score[i]; 
    // cout << score[i] << endl; 
}// end of for loop to read into array 
inputfile.close(); 


}// end of main 


string ArrayFormat(int array[]){ 


for(int i=0; i<=21; i++){ 

} 


}// end of ArrayFormat 
+0

배열에 처음에 어떤 형식이 저장됩니까? 당신이 필요로하는 것이 무엇인지 정확하게 설명하십시오. – DaveyLaser

+1

나머지 숫자는 두 번째 숫자를 넘어 무엇입니까? – dasblinkenlight

+0

처음에는 한 줄에 하나씩 목록으로 저장됩니다. – user1793058

답변

1
for(int i = ; i < 21; i++) 
{ 
    if(i%2 == 1) 
     std::cout << "-" << array[i] << "\t"; 
    else 
     std::cout << array[i]; 
} 

이는 올바른 포맷으로, 2의 쌍의 배열을 출력한다.

편집 : 숫자 쌍을 인쇄해야하는 경우 왜 배열이 홀수입니까?

+0

숫자의 마지막 세트는 실제로 숫자 1-3-0입니다. 그래서 그것이 21입니다. – user1793058

+0

이것은 정말 가깝습니다. 그러나 같은 줄에 인쇄해야합니다. 한 줄에 하나씩 인쇄됩니다. 마지막 숫자가 3 자리라는 것을 언급하지 않았습니다. 따라서 마지막 지수는 1-1-1이어야합니다. 형식화 된 각 출력 사이에 "\ t"탭을 추가하고 같은 줄에 입력하는 방법에 대한 조언이 있습니까? – user1793058

+0

마지막 세트는 항상 3 자리 숫자입니까? 왜 마지막 3 개의 숫자를 제외하고 2의 쌍으로 모든 숫자를 표시하고자하는지 이해할 수 없습니다. 그 다음 3 개의 숫자 만 맞으면 쉽게 맞을 것입니다. 코드를보다 효율적으로 변경했습니다. 각 변수를 반복하십시오. –

관련 문제