如何使用C将文件中的字节读入字符串和整数?

时间:2017-04-08 23:04:52

标签: c file io fwrite fread

我使用C' fwrite编写了一个文件,我写了一个字符串,然后是一些整数,多次。我用这段代码写了:

fwrite(&words,sizeof(char),strlen(words) - 1, outputFile);
fwrite(&nextNum,sizeof(int),1, outputFile);

如何将文件读回字符串和整数?

此外,从文件中读取一组int而​​不是多个连续的整数会更快吗?

1 个答案:

答案 0 :(得分:2)

您写入文件的方式会丢失一条关键信息:字符串的长度。通常有三种方法可以解决这个问题:

  1. (效率最低!)假设你的字符串比10个字符短,并且总是写10个字符(根据需要用空格填充)并读回10个字符,修剪空格。这是"固定宽度"格式。
  2. 在您写入的每个字符串前面加上长度信息,比如16位字(因此您将字符串的大小限制为64K,这对大多数应用程序来说已足够)
  3. 使用字符串结尾指标。最明显的一个是用于标准C字符串的'\0'空终止符
  4. 当然,回读取决于你选择写出字符串的技巧。但是一旦你完成了字符串的可变长度并发症写入/读取整数(总是精确的,已知大小)应该是轻而易举的。