현재 알 수없는 두 배의 숫자를 텍스트 파일에서 각자의 줄에 가져 오는 프로그램을 작성하고 있습니다. 이 요소를 배열에 배치해야하지만 작동하지 않습니다. 내 인쇄 루프가 작동하지만 0 만 인쇄합니다. 나는 많은 것을 시도했고 여기에 오기 전에 많은 것을 보았다. 이것은 내 코드입니다. 너무 많은 숫자가 파일에 있다면 코드도 확인하지 않았다 제외 fscanf()
결과fscanf를 사용하여 C에서 복식을 읽는 방법
#include <stdio.h>
#include <stdlib.h>
int main()
{
//Open an file to read from
FILE *file;
file = fopen("data.txt","r");
if (file == NULL)
{
printf("File not found.");
return -1;
}
//Count the number of lines in the input file
int numLines = 0; //CHANGE TO 1 ???
int ch;
do
{
ch = fgetc(file);
if (ch == '\n')
numLines++;
} while (ch != EOF);
//Put all of the data read into an array;
double input[numLines];
int i = 0;
while ((fscanf(file, "%lf\n", &input[i])) == 1)
i++;
//Close the file
fclose(file);
//Test printing elements of array
for (i = 0; i < numLines; i++)
printf("%lf\n", input[i]);
return 0;
}
줄을 계산 한 후에 파일 포인터를 ['rewind'] (https://linux.die.net/man/3/rewind)해야합니다. 그렇지 않으면 파일의 끝 부분에 있습니다. 실제 입력 데이터를 읽으십시오. –
'% lf "("% lf \ n "이 아닌)와 같은 형식을 사용하여 뒤 공백이 아닌 선행 공백을 건너 뛰고 싶습니다. – Jens
'printf ("% f \ n", input [i]);''l '은 floats에 대한 printf 형식 지정자가 있으므로 영향을받지 않습니다. 자동 지정은 double . – bruceg