예를 들어, "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];
}
예를 들어, "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];
}
문자 단위로 문자를 읽으려면 getchar
을 사용하십시오. 루프는 다음과 같이 보일 것이다 :
for(int i = 0; i < n; i++)
{
a[i] = getchar();
a[i] -= '0';
}
getchar
의 반환 값은 입력 문자의 아스키 코드가 될 것입니다. 입력을 숫자로 읽으려고하기 때문에 a[i] -= '0'
으로 해당 변환을 수행 할 수 있습니다.
물론 위의 루프는 입력 살생을 수행하지 않으며 읽고있는 형식을 정확히 알고 있다고 가정합니다. feof
및 ferror
을 사용하면 오류가 발생할 수 있습니다.
a [i] - = '0'; // 와트는이 행을 할 것인가? – gskishan004
그리고 대답은 – gskishan004
입니다.'a'는'int'의 배열이라고 가정했습니다. 따라서 문자에서 숫자로 변환하려면'a [i] - = '0';'을 사용하십시오. – Pradhan
질문에 'a'선언을 추가하십시오. –