当前位置:网志问答 > 化学 > C++表达式必须包含类类型错误
已有回答

C++表达式必须包含类类型错误

#pragmaonce#include<cstdio>#include<string>#include<fstream>//不要管这个多余模块#include<iostream>//同上usingnamespacestd;typedefstruct{FILE*f;//文件对象stringread_str;//针对read函数存放的读入内容voidopen(stringname,stringmode)//打开文件{fopen(name.c_str(),mode.c_str());}boolclose()//关闭文件{intm=fclose(f);returnm==0;//返回是否关闭成功}intwrite(strings)//写入文件{if(feof(f))returnEOF;//如果到文件尾,则返回endoffile后退出fputs(s.c_str(),f);return0;//返回正常值}intread(intcoord,inteol,intmode)//读入文件{/*coord起始位置/eol结束位置/长度/mode模式(1:使用结束位置,2:使用长度)1-2*/fseek(f,coord,SEEK_SET);if(feof(f))returnEOF;if(mode==1)read_str=fgets((char*)(read_str.c_str()).c_str(),eol-coord,f);//^-这里报错:表达式必须包含类类型}}myf;//我的C++程序有一半是C风格的,爱用string爱用FILE*,这点不要管网志问答在·广东浏览148次收到腾讯网的热心用户海燕_444关于瞄准C++表达式必须包含类类型错误的提问,关于这些疑难问题,进行了深入的分析。得到了网志问答众多网友的支持,得到了如下解决方案,摘录了部分优质回答,如对此有任何好的意见,欢迎大家进行探讨共同解决!

详细问题描述及疑问:期待您的答案,你就是当代的活雷锋,太感谢了 !

本页链接:http://www.oxrm.com/question/1671427468219276

AD728-90
满意答案

第1个优秀答案:

read_str=f问答gets((char*)(read_str.c_str()).c_str(),eol-coord,f);语法不通你的read_str.c_str()已是constchar*类型,一是没必要强制层转为char*,二是char*后它就没有c_str()这个成员函数了,而另外正因为它是constchar*,它是不能写入的,你把它做为fgets参数,即使语法上能编译,运行也要出错的/正确的,要有临时缓冲的char*buff=ne胞错训超获溶促酒求wchar[eol-coord+1];fseek线苏众福理(f,coord,SEEK_SET);if(f凯模销亲急eof(f))returnEOF;if(mode==1)read_str=fgets(buff,eol-coord,f);deletebuff;


希望以上的回答,能够帮助你。更多关于C++表达式必须包含类类型错误的知识及相关经验请访问经验知识https://www.5058.cn/,能够帮助你解决更多的问题,学习更多的经验。
AD160-600