프로그래밍에서 완전히 새로운 기능이며 여기에서하는 일을 설명하는 방법을 모르겠습니다.int 배열이 char 값을 가져 오지 않습니다
이 부분의 모든 목적은 값을 입력 한 다음 동일한 순서로 인쇄하는 것입니다. 이제 'q'를 누를 때 값을 입력하지 않으려 고 문자를 검색해야하지만 int 배열로 다시 할당하면 값이 동일하지 않습니다. 를 heres 내 코드 당신에게 있지만, 어떤 경우에 어떤 의미가
희망 :
#include <stdio.h>
#include <stdlib.h>
#define SIZE 5000
define flush fflush(stdin)
main() {
int input[SIZE] = {0},i = 0;
int counter = 0;
char inputs, quit;
do {
system("cls");
printf("Input number ('q' to quit and display numbers entered): ");
flush;
scanf("%c",&inputs);
flush;
if (inputs == 'q')
quit = 'q';
else {
input[i] = inputs;
counter++;
i++;
}
} while (i < SIZE && quit != 'q');
for(i = 0; i < counter; i++){
printf("%i.%i\n", i + 1, input[i]);
}
system("pause");
}
필자는 문자에 대한 온라인 조사 BTW 또한 내 자신에 대한 몇 가지 정보를이 일을하려고하지만 것 아무것도 찾을 couldnt는되어 도와주세요. 많은 감사드립니다.
간단한 : 당신이하고있는 일은 UB입니다. –
'fflush (stdin)'에 정의되지 않은 동작이 있습니다. 하지 마. –
'int' 배열에'char'을 저장해도 그 문자가 ASCII 인코딩에서 원하는 10 진수 결과로 변환되지 않습니다. 예. ''1 ''은 십진수로 49로 표시되며, 실제로 메모리에 저장되는 값입니다. 대신이 변환을 수행 할 '% d'지정자를 사용해야합니다. 또한 숫자보다 긴 숫자를 읽을 수 있습니다. 필요한 경우 너비 지정자가있는 숫자의 길이를 제한 할 수 있습니다. – AusCBloke