fgetc()를 사용하면 큰 문제가 있습니다. 알아낼 수는 없지만 ... 텍스트 파일을 구문 분석하려고합니다. 모든 컴파일이 실행되지만 무한 루프가 실행됩니다. xor segfault (Code :: blocks), 내 텍스트 파일은 다음과 같습니다 : { "USD_EUR": "0.8631364", "EUR_USD": "1.3964719"} 16 비율 변경. { "USD_EUR": 나는fgetc()는 float을 읽을 수 없습니다
void read(float change[4][4], char* myFile)
{
FILE* file = NULL;
file = fopen(myFile, "r+");
int value,i;
float rate[16];
char* str = "";
if (file != NULL)
{
do
{
value = fgetc(file);
printf("%c \n",value);
while(value > 48 && value < 57)
{
value = fgetc(file);
strcat(str, value);
//printf("%s \n", str);
}
rate[i] = atof(str);
i++;
str = "";
}while(value != EOF);// 125 = }
change[0][1] = rate[5];
change[0][2] = rate[0];
change[0][3] = rate[15];
change[1][0] = rate[6];
change[1][1] = rate[14];
change[1][2] = rate[7];
change[1][3] = rate[10];
change[2][0] = rate[8];
change[2][1] = rate[2];
change[2][2] = rate[12];
change[2][3] = rate[4];
change[3][0] = rate[3];
change[3][1] = rate[13];
change[3][2] = rate[11];
change[3][3] = rate[9];
fclose(file);
}
else
{
printf("Unable to read the file!\n");
}
}
나는 또한 EOF와 시도하지만 난 단지 그 루프 전 벗어나 다음 숫자 앞에 문자가 ... 속도 [16]에 내 모든 플로트를 넣어 시도 "
C 문자열을 얼마나 알고 있습니까? 당신은'str = ""'할 수 없습니다. – guest
그리고'strcat (char *, int)'를 호출하려고합니까? – guest
에 'change'가 있으면 위치 변경 [0] [0]이 (가) 건너 뜁니다. – user3629249