从文件中逐字读取字符,怎么不成功啊。。
do
{
for(i = 0; (temp = fgetc(inputfp) )!= '\n';i++)
{
if ( temp = -1)
break;
dangqianhang->wenben[i] = temp;
}
printf("%d",temp);
if ( temp == '\n')//新建行
{
tempnode = (struct line *)malloc (SZ);
dangqianhang->hou = tempnode;
tempnode->qian = dangqianhang;
dangqianhang = tempnode;
dangqianhang->numberofline = linenumber;
linenumber ++;
}
}while(temp !=-1);//判断当前文件没有结束,录入整片文档
dangqianhang->hou = NULL;//以NULL结束链表
大家帮忙看看哦 ,,,不解哦
[解决办法]
你的不成功指的是什么?
这行:printf("%d",temp);
有问题吧。。temp是字符。
[解决办法]
你跟踪一下,看看temp读取成功没有,特别是对于汉字,会超出char的范围
[解决办法]
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待
和
fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了
[解决办法]
推荐使用WinHex软件查看文件原始字节内容。