getline一次只能读入一些字符吗? c++ 问题急求解决
解决时间 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类。
我要举报
大家都在看
推荐资讯