读取文本文件和字符串处理问题?
while(fgets(line, maxLength, f))
{
if (feof(f)) break;
fileContent[lineNo] = (char*)malloc(strlen(line)+1);
printf("%s",fileContent[lineNo]);
lineNo++;
}
以上代码将文本文件按行读到字符串数组中。但是每行的末尾有'010'和'013'。
而且最后一行读不出来。
请教各位,谢谢!
问题点数:0、回复次数:6Top
1 楼nochess()回复于 2003-11-04 10:08:09 得分 0
如何去掉行末尾的换行和回车,如何处理最后一行。Top
2 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2003-11-04 10:15:42 得分 0
最后一行是不是文件结束,没有换行回车符??
那你就判断一下文件长度和你已读的长度就行了Top
3 楼nochess()回复于 2003-11-04 10:19:34 得分 0
格式大致如下,读不到第4行
1|aaa
2|bbb
3|ccc
4|nnnTop
4 楼TianGuangZao(天光早)回复于 2003-11-04 11:43:40 得分 0
while(fgets(line, maxLength, f))
{
if (feof(f)) break;
...
}
循环条件有问题,比如读完第 4 行,此时已经到了文件结束位置,if (feof(f)) 条件成立,break 中断循环,直接退出,并没有写入 fileContent[lineNo]。
改成下面试试看:
while (!feof(f))
{
fgets(line, maxLength, f));
fileContent[lineNo] = (char*)malloc(strlen(line)+1);
printf("%s",fileContent[lineNo]);
lineNo++;
}
Top
5 楼zhyy(zhyy)回复于 2003-11-04 12:07:30 得分 0
把if (feof(f)) break;移到循环的倒数第二行Top
6 楼fierygnu(va_list)回复于 2003-11-04 12:08:40 得分 0
TianGuangZao(天光早) 对。Top




