在做C++primer文本查询程序,遇到了程序无法读取文本输入数据的问题,一开始以为是文件打开失败
加入了一条判断语句,文件正常打开,于是就苦逼的慢慢调BUG,最后锁定罪魁祸首是istringstream这
个类创建的一个对象,贴上演示代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
int main() {
string word("hello"); //初始化字符串word
istringstream scin(word); //构造一个字符串流读取对象绑定word
cin >> word; //修改word
string word2;
scin >> word2; //从字符串流中读取单词给word2
cout << word2; //打印结果
return 0;
}
结果如下:
大家应该看懂了吧,字符串流绑定的是最初的那个对象,并且后面修改了源对象,也不影响字符串流中绑定的内容,今天一早上栽在这里了,希望后面和我一样的小白能够避开这个陷阱