2013-03-22 2 views
0

에 입력 한 문자를 출력하지 문자열 및 매트릭스 형식으로 출력 그들,을 heres 코드는 지금까지 있습니다내가 그래서이 프로그램은 내가 입력 입력 것에 예정이다

#include <iostream> 
#include <string> 

using namespace std; 

#define N 6 


// 
// fill: 
// 
void fill(string s, int M[][N], int ROWS, int COLS) 
{ 
int i, r, c; 

for (i=0, r=0; r < ROWS; r++) 
{ 
    for (c=0; c < COLS; c++) 
    { 
    M[r][c] = s[i]; // store ith character into matrix: 

    i++; // next character: 
    if (i == s.length()) // start-over if that was last char: 
    i = 0; 
    } 
} 
} 

void print(int M[][N], int ROWS, int COLS) 
{ 

string s; 
getline(cin,s); 
    int r, c; 
for(r=0; r< ROWS; r++) 
{ 
for(c=0; c < COLS; c++) 
{ 


cout<<(char)M[r][c]; 


} 

cout <<endl; 
} 
} 
// 
// main: 
// 
int main() 
{ 
string s; 
int M[N][N]; 
int M2[N][N]; 
int row, col, ROWS, COLS; 


ROWS = sizeof(M)/sizeof(M[0]); 
COLS = sizeof(M[0])/sizeof(M[0][0]); 

fill(s, M, 1, 1); 
print(M, ROWS, COLS); 

return 0; 
} 

어떤 생각이 왜 그 내가 임의의 문자를 출력하는 대신에 임의의 문자를 출력합니까?

답변

0

먼저 문자열을 채우기 함수에 전달하기 전에 문자열을 초기화하지 않습니다. 다음으로 문자열을 int에 삽입하려고합니다. C++에서는 직접 그렇게 할 수 없습니다.

"123456"과 같은 문자열을 [1,2,3,4,5,6; 1,2,3,4,5,6; ...] 등? 프로그램에서 수행 할 작업이 무엇입니까?

+0

예를 무엇이든 내가 입력 할 수 있도록 6으로 나온다 첫 번째 줄의 문자와 다음 줄로 넘겨주기 – polishusar

+1

입력이 ** 문자열이어야한다면 atoi 함수를 사용하여 문자열을 "123456"문자열에서 int 123456 문자열로 변환하십시오. 그런 다음 10을 사용하여 나머지를 가져 가십시오 이 번호의 각 자릿수를 얻으려면. mod '%'연산자를 사용하여 나머지를 10으로 취할 수 있습니다. –

+0

미안 해요 대부분이 프로그램의 이러한 유형의 새로운 그래서 내가 그걸로 직접 – polishusar

0

여기서 입력을 정수 배열에 저장하고 문자 값을 표시하려고합니다.

COUT 명령문 < < (숯) M [R] [C]하면 [C] M (R)의 정수 값에 대응하는 ASCII 값을 제공한다.

당신이보고있는 임의의 문자 일 수 있습니다. 직접 대신 문자 배열을 사용하여 직접 호출하여 출력 (outputting) 시도 할 수 있습니다 : < < M [r은] [C]

+0

출력 할 때 그게 나에게 숫자를 제공하면, 내가 출력 할 필요가있는 문자를 입력하십시오 – polishusar

+0

문자 배열 문자 M [] [ N] 대신에 print 및 fill 함수에서 사용하는 정수 배열 대신 직접 출력을 수행하십시오. – CodeRider

+0

방금 ​​시도한 프로그램 메신저에서 작동하지 않습니다. – polishusar

0

이 시도 COUT,

#include <iostream> 
#include <string> 

    using namespace std; 

    #define N 6 

    void fill(string s, char (&arr)[N][N]) 
    { 
     int char_index =0; 
     for (int i=0; i < N; i++) 
     { 
      for (int j=0; j < N; j++) 
      { 
       arr[i][j] = s.at(char_index);   
       if (char_index+1 == s.size()){ 
        char_index =0; 
       }else{ 
        char_index++; 
       }    
      } 
     } 
    } 

    void print(char arr[][N]) 
    { 
     cout << "--------------" << endl; 
     int char_index =0; 
     for (int i=0; i < N; i++) 
     { 
      for (int j=0; j < N; j++) 
      { 
       cout << arr[i][j] << " "; 
      } 
      cout << endl; 
     } 
     cout << "--------------" << endl; 

    } 

    int main() 
    { 
     string s =""; 
     cout << "Enter your string:"; 
     getline(cin,s); 
     char M[N][N]; 
     fill(s,M); 
     print(M); 
     system("pause"); 
     return 0; 
    } 
관련 문제