当我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;
}
}
答案 0 :(得分:1)
对于初学者,您需要一些括号,或者您将继续存储fgetc
和EOF
的结果之间的比较:
while((holder=fgetc(fileA)) != EOF)
^ ^
答案 1 :(得分:1)
fgetc
会返回int
,而非char
。这是因为EOF
大于char可以存储的值(以避免与char
中的值冲突)。因此,您可能会超过文件末尾并读取随机数据。
将持有人更改为int
,并在打印并将其存储在数组中时使用(char)holder
。
答案 2 :(得分:0)
我会再次建议您先搜索到文件大小,然后查看文件大小,立即分配内存并通过一次调用fread一次性读取整个文件。
的回答