안녕하세요, 중첩을 후위로 변환하고 방정식을 해결하기 위해 연결된 목록, 스택 및 대기열을 사용하는 프로그램을 만들고 있습니다. 스택 및 대기열 연결된 목록에 대해 밀어 넣기, 끌어 오기 등을 만들었습니다. 그러나 내가 겪고있는 문제는 char와 float 사이의 변환입니다.텍스트의 방정식 읽기
텍스트 파일에서 읽을 때 방정식을 2 + 3/(5 + 1)과 같은 간단한 방정식으로 변환합니다. 내 푸시 함수는 char을 사용하고 pull은 char을 반환합니다. 내가 무엇을 먼저해야 할지를 알 수없는 것은 이러한 문자열을 char/floats로 변환하는 방법입니다. 이 테스트 코드를 작성하여 typeid가 char과 int를 구분하는지 확인했습니다.
int i, j;
for(i=0; i<lines; i++){
j = 0;
while(readIn[i][j] != '\0'){
cout << typeid(readIn[i][j]).name();
j++;
}
cout << endl;
}
내 결과는 다음과 같습니다 그러나 :
ccccccccccccccc
ccccccccccccccccccccc
ccccccccc
그래서 그것은 문자로 문자열의 모든 문자를 해석합니다.
두 번째 질문에는 끌어 오기 기능이 관련되어 있습니다. 푸시 함수에서 제대로 float 변환을 수행 할 수있게되면 char 및 float로 함수 오버로드를 수행했습니다. 똑같은 코드는 구조의 별도 부분에 데이터를 저장합니다. 그러나 끌어 오기 함수에서 어떻게 char 또는 float을 가져올 수 있습니까? 하나의 char 함수와 다른 float 함수를 필요로하지만 같은 인수와 다른 리턴 값을 가진 두 개의 함수를 가질 수는 없습니다.
정말 도움이됩니다.
C를 사용합니다, 당신은'표준 : cout'를 사용하는 것 같습니다, 그래서 이것은 C++ 질문? – crashmstr
그리고,이 경우에'typeid'가 무엇을 할 것이라고 생각합니까? –
'readIn'은'char' 배열의 배열이라고 생각합니다. 이 경우 각 문자가 문자라는 것은 놀랄만 한 것이 아닙니다 ... 어떤 문자를 읽었는지 알기 위해서는 실제로 문자를 검사해야합니다. –