파일에서 데이터를 읽는 기능을 구현하고 싶습니다. fscanf를 통해 데이터를 읽을 수 있지만 문제는 선의 길이가 선마다 다르다는 것과 문제를 모두 저장해야한다는 것입니다.C에서 파일에서 입력 (가변 길이) 입력
numberOfStates state1 state2 ... numberOfAlphabts alphabt1 ... transitiontable
이것이 의미하는 것은 numberOfStates가 이후 얼마나 많은 stateX 결정한다는 것입니다 : 파일의 형식은 다음과 같습니다. 만약 5가 그렇다면 우리는 0 1 2 3 4를 가지고 있고, 그 다음에 2라면 우리는 0 1을 가질 것이고 numberOfAlphabets와 같은 경우를 가질 것입니다. 그것이 2라면 우리는 그 다음에 b가 있다고 말할 수 있습니다. 그것이 5라면 우리는 그 줄에서 그 뒤에 b c d e를 가지고 있습니다. 또한 또 다른 문제가 있습니다 : transitiontable은 상태와 알파벳의 모든 조합을 저장하는 배열입니다.
이a0 a1
b0 b1
사람이를 구현하는 방법에 나를 인도 할 수 예를 들어 두 개의 상태 0 1, 2 개 개의 알파벳 A B 다음 transtiontable는 것이 있다면? 데이터가 STDIN에서 읽었고 파일이 아닌 경우 이미 구현했습니다. 하지만 fscanf 내부의 전환 테이블을 초기화하는 방법에 대해선 머리 숙여 질 수 없습니다.
STDIN에서 작동하고'scanf()'를 사용했다면'fscanf()'를 사용하도록 수정하십시오. 'gets()'를 사용했다면'fgets()'로 이동하십시오. –
@WeatherVane 문제는 fscanf (traceFile, "% c", variable)와 같은 형식입니다. 변수가 transitiontable이라면 어떻게해야합니까? 전이 테이블의 크기는 같은 줄에서 읽힐 숫자와 숫자의 숫자에 달려 있습니다! 나는 그것을 초기화 할 수 없다! – aaa
'fgets()'를 사용하여 파일을 읽습니다. – user1336087