put_float(fout, v + i);
}
-void put_string(FILE *fp, char * str)
+void put_string(FILE *fp, char *str)
{
int len = strlen(str) + 1;
fwrite(str, 1, len, fp);
get_float(fin, v + i);
}
-void get_string(FILE *fp, char * str, int len)
- /* len include the room for the \0 */
- /* if len is too small, the string is truncated. */
+void get_string(FILE *fp, char *str, int len)
+/* len includes room for '\0'. If len is too small, the string is truncated. */
{
char b;
+
while (1)
{
- fread(&b, 1, 1, fp);
- if (len > 0)
- {
- *(str++) = (len > 1 ? b : '\0');
- len--;
- }
- if (b == '\0')
- return;
+ fread(&b, 1, 1, fp);
+ if (len > 0)
+ {
+ *(str++) = (len > 1 ? b : '\0');
+ len--;
+ }
+ if (b == '\0')
+ return;
}
}