2017-09-22 7 views
-2

동전 입김 프로그램을 쓰고 있습니다. 사용자가 숫자를 다음과 같이 입력하기를 원합니다.C++ - 일련의 1과 0을 입력하십시오. 그런 다음 2D 배열의 해당 위치에 자동으로 할당합니다.

1. 입력 2 x 및 y를 행 수로 입력하십시오. 과 열 번호 (완료) 1 (머리) 및도 2 (꼬리)와 주화의 초기 상태 2.input

아래와 같은

1010 
1111 
0000 

단계 2의 입력 3.Taking 및 할당 1 및 0을 2D 배열의 해당 위치로 아래

1(grid[0][0])0(grid[0][1])... 
1(grid[1][0])1{grid[1][1])... 
... 

3 인 경우 가능합니까? 내가 한 일은 아래 코드가 보여주는 것처럼 1을 1 씩 입력하도록 사용자에게 요청하는 것입니다.

for(int x=0;x<rows;x++) 
{ 
    for(int y=0;y<columns;y++) 
    { 
     cin >> grid[x][y]; 
    } 
} 

는 "char.at()"또는 임의의 다른 어드바이스 추천 기능을 이용하여 1과 0의 위치를 ​​판독 할 수있다?

+3

예, 정확하게 질문에 대답하려면 예, "그렇게 할 수 있습니다". –

+0

전체 줄을 입력하고 직접 파싱 할 수 있습니다. – leyanpan

답변

0

은 당신이 뭔가를 할 수 있습니다 :

int grid[10][10]; 
for (int x=0; x<10; ++x) 
{ 
    std::string s; 
    std::cin>>s; 
    ///check for string correctness here 
    for(int y=0; y<10;++y) 
    { 
     grid[x][y]=s[y]-'0'; 
    } 
} 
for (int x=0; x<10; ++x) 
{ 
    for(int y=0; y<10;++y) 
    { 
     std::cout<<grid[x][y]; 
    } 
    std::cout<<"\n"; 
} 

은 기본적으로 당신은 문자로 다음 문자를 사용할 입력 전자에서 X 문자열을 읽습니다. 원하는 경우 length = x * y 인 문자열 하나만 읽을 수도 있습니다.