永发信息网

getline一次只能读入一些字符吗? c++ 问题急求解决

答案:2  悬赏:20  手机版
解决时间 2021-02-27 22:22
  • 提问者网友:凉末
  • 2021-02-27 13:29
#include
#include
#include

using namespace std;
int main(){

ifstream ifs("a.txt");
char line[20];
ifs.getline(line,'\n');
cout< return 0;
}

a.txt文件里是这样的
wo shi zhuzhu haha

为什么最后的结果是 wo shi zh
只有这么一段?为什么?
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-02-27 13:37
getline有两种重载
getline(_CharT*, std::streamsize, _CharT)
getline(_CharT*, std::streamsize)
所以可以有两个参数或者三个参数
第二个参数是输入的最大字节数
如果要自定义结束符 第三个才是
所以 按照你的意思
getline需要写成
ifs.getline(line,sizeof(line));

或者
ifs.getline(line,sizeof(line), '\n');
全部回答
  • 1楼网友:末日狂欢
  • 2021-02-27 14:59
string类,比方说存了一个private char *型数据,但由于string类并没有封装“调用数据头指针”这样的函数,所以无法直接调用string类中字符串数据的char *型地址,无法将其作为参数放在getline这样的函数中。因为getline的第一个参数要求是char *型。 可以先将被get的line存在一个字符串里,再用string类的"="操作符赋给string类。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯