2011-11-19 3 views
0

예를 들어, 내가 줄 바꿈으로 구분 된 일반 텍스트로 저장 복식, 하나의 공백으로 구분하여 열, 행의 NXN 그리드 있다고 가정 :파일 데이터를 토큰 화하여 C로 배열에 저장할 수 있습니까?

1.01 2.22 6.10 
-22.10 -15.0 1.0 
2.3 -4.4 5.5 

내가 아는 모든 숫자가 배가 될 것입니다, 프로그램 nxn double (즉, 정방 행렬)을 2-d 배열로 파싱해야하지만, 미리 n의 값을 알 수는 없습니다. nxm 숫자가 있으면 프로그램이 종료 될 수 있습니다. 감사합니다. .

답변

2

줄을 읽고 strtok(s, " \t")을 사용하여 토큰화한 다음 strtod을 호출하여 저장하십시오. 당신이 얻은 것이 nxn 행렬인지 확인하기 위해 온 전성 검사를 추가하십시오.

플랫폼에있는 경우 strtok 대신 strsep을 사용하는 것이 더 좋습니다.

는 다른 방법으로, scanfN × N 번 호출하고 반환 값을 매번 확인하고 마지막으로 당신이에서 읽고있는 파일이 EOF에 있는지 여부를 확인합니다.

+0

'strtok'이 입력 문자열을 수정한다는 점은 주목할 가치가 있습니다. –

+0

@Chris : 예, 그래서 방금'strsep'와'scanf'를 답안에 대안으로 추가했습니다. 감사. –

+0

이봐, 이걸 제대로 작동시킬 수는 없어. 나는 C에서 아주 새롭고 파일을 파싱하는데 끔찍하다. 줄 바꿈과 EOF 마커를 검사하는 동안 파일을 저장하는 방법에 대한 예를 쓸 수 있겠는가? – Chironex

관련 문제