2014-12-24 4 views
1

예를 들어, "1912"를 입력으로 사용하면 a[0]=1, a[1]=9 등이되도록이 입력을 구문 분석하고 int a[]을 채우는 방법은 무엇입니까?한 번에 한 문자 씩 읽음

for 루프를 통해 수행 된 경우 a[0]=1이 아니라 a[0]=1912이됩니다.

for(int i=0;i<n;i++){ 
    cin>>a[i]; 
} 
+0

질문에 'a'선언을 추가하십시오. –

답변

1

문자 단위로 문자를 읽으려면 getchar을 사용하십시오. 루프는 다음과 같이 보일 것이다 :

for(int i = 0; i < n; i++) 
{ 
    a[i] = getchar(); 
    a[i] -= '0'; 
} 

getchar의 반환 값은 입력 문자의 아스키 코드가 될 것입니다. 입력을 숫자로 읽으려고하기 때문에 a[i] -= '0'으로 해당 변환을 수행 할 수 있습니다.

물론 위의 루프는 입력 살생을 수행하지 않으며 읽고있는 형식을 정확히 알고 있다고 가정합니다. feofferror을 사용하면 오류가 발생할 수 있습니다.

+0

a [i] - = '0'; // 와트는이 행을 할 것인가? – gskishan004

+0

그리고 대답은 – gskishan004

+0

입니다.'a'는'int'의 배열이라고 가정했습니다. 따라서 문자에서 숫자로 변환하려면'a [i] - = '0';'을 사용하십시오. – Pradhan

관련 문제