3.C++逐行读取txt文件数据,利用getline |
您所在的位置:网站首页 › getline函数读文件 › 3.C++逐行读取txt文件数据,利用getline |
引言:今天学会了getline的用法,顺手编写一个逐行读取txt文件的程序。关于getline的用法可以看我之前的博客:2.C++标准库函数:getline函数 定界流输入截取函数 个人技术博客(文章整理+源码): https://zobolblog.github.io/LearnWinAPI/ 最终效果: : 1.getline函数声明 getline函数实际上是在两个模块都有实现,一个是string一个是istream,它们的用处都是一样的,只是输入的参数不太一样。一个是char*一个是string。 std::istream::getline: istream& getline (char* s, streamsize n ); istream& getline (char* s, streamsize n, char delim );std::getline (string): istream& getline (istream& is, string& str); istream& getline (istream& is, string& str, char delim);2.使用方法: 第一个std::istream::getline的使用,就是cin或者ifstream,调用成员函数的形式,cin.getline: 第1个参数s是承接的字符数组,大小必须大于等于获得的数据长度。 第2个参数n,是s的最大长度,因为char*是得不到数组长度的,必须额外给出,防止内存访问越界、 char name[256]; std::cin.getline(name, 256);第二个std::getline (string),类似公共函数了,流的输入也放到了参数列表中,因为string内部有动态长度设计,就不用额外给出了。 std::getline (std::cin,name);char delim就是定界符号,默认是‘/n’换行符,也可以自己指定。getline会返回从起始,到定界符前的数据(不包括定界符本身,但流会经过定界符,相当于光标跳到定界符后面)。 C++逐行读取txt文件源码: #include #include #include int main() { std::ifstream infile("zobol.txt"); std::string line; std::vector vectorLines; while (getline(infile, line)) { vectorLines.push_back(line); } return 0; }效果: 本人个人技术博客: https://zobolblog.github.io/LearnWinAPI/ ,B站账号:zobol,个人公众号:zobol的魔法藏书室,技术讨论群:811851762。所有源码和文章均整理上传其中,欢迎关注。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |