关于网友提出的“ 从文件中逐字读取字符,怎么不成功啊。。”问题疑问,本网通过在网上对“ 从文件中逐字读取字符,怎么不成功啊。。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 从文件中逐字读取字符,怎么不成功啊。。
描述: 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结束链表
大家帮忙看看哦 ,,,不解哦
解决方案1: 你的不成功指的是什么?
这行:printf("%d",temp);
有问题吧。。temp是字符。
解决方案2: 推荐使用WinHex软件查看文件原始字节内容。
解决方案3: 不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待
和
fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了
解决方案4: 你跟踪一下,看看temp读取成功没有,特别是对于汉字,会超出char的范围
以上介绍了“ 从文件中逐字读取字符,怎么不成功啊。。”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2708901.html