我如何读取文本文件字母并保存到C中的数组中

时间:2013-03-02 18:41:17

标签: c

当我cout持有人(是char)值时,显示歧义字母。如何读取字母并保存到数组然后打印出来?

while (holder=fgetc(fileA) != EOF) {
    cout << holder;
    lenA++;
    temp = (char*) realloc(seqA,lenA*sizeof(char));
    if (temp != NULL) {
        seqA = temp;
        seqA[lenA-1] = holder;
    }
}

3 个答案:

答案 0 :(得分:1)

对于初学者,您需要一些括号,或者您将继续存储fgetcEOF的结果之间的比较:

while((holder=fgetc(fileA)) != EOF)
      ^                   ^

答案 1 :(得分:1)

fgetc会返回int,而非char。这是因为EOF大于char可以存储的值(以避免与char中的值冲突)。因此,您可能会超过文件末尾并读取随机数据。

将持有人更改为int,并在打印并将其存储在数组中时使用(char)holder

答案 2 :(得分:0)

我会再次建议您先搜索到文件大小,然后查看文件大小,立即分配内存并通过一次调用fread一次性读取整个文件。

查看我对previous question

的回答