だから私は複数の文字列を持つファイルを持っています。fgets
各行を読み取りsscanf
、文字列を分割して構造体に処理するために使用することになっています。これが例です。
38L Lee, Victor; 2.8
1 番目は ID、2 番目は名前、最後は gpa です。sscanf を使用して gpa を読み取ろうとすると、2.8 ではなく 0.0 と表示されます。これが私のコードです。
bool getstu (FILE* fpstu, STU* pstu)
{
// Local Definitions
int ioResult;
char temp[100];
char *ptr;
char tempStr[50];
// Statements
fgets(temp, sizeof(temp), fpstu);
{
ptr = temp;
sscanf(ptr, "%3s", pstu->id);
ptr += strlen(pstu->id) + 1;
sscanf(ptr, "%[^;]", tempStr);
pstu->name = aloName(tempStr);
ptr += strlen(tempStr) + 2;
sscanf(ptr, "%s", tempStr);
sscanf(tempStr, "%3.1f", pstu->gpa);
}
return ioResult == 1;
}// getstu
誰かが私が間違っていることと、この問題を解決する方法を説明できますか?