std :: getline从iStream中直至字符串[]多次空白
std::getline from istream into string[] multiple times blank
所以我有这个构造函数
A::A(std::istream& is)
{
if (validation(is))
{
std::string line[SIZE];
unsigned int i = 0;
while((std::getline (is, line[i])&& i < SIZE))
{
i++;
}
....
验证看起来像这样,它将IS存储在线并进行一些测试并返回布尔。它可以正常工作,但是该构造函数中的第二个GETLINE是空白的(没有存储在线)。如果我评论验证,则可以正常工作。所以我想这是getline和huffer的东西。我试图清除,但我对流不好。
如果有人有猜测,thx!
主
ifstream myfile("file.txt");
A a(myfile);
验证.cpp
bool validation(std::istream& is)
{
string line[SIZE];
unsigned int i = 0;
bool valide = false;
while((std::getline(is, line[i])&& i < SIZE))
{
i++;
}
....
如果 validation
具有 while((std::getline(p_is, line[i]) && i < SIZE))
循环,则它从流中散开的那些行, getline
不会直接在 A::A
中看到。因此,getline()
返回false
和您的while
循环退出,并且i
处的任何line[]
元素仍然为空。
需要一个单独的验证功能是相对不寻常的...只需尝试阅读将存储数据的变量,随着您的使用而进行验证。
如果您决定单独进行验证,则可以在使用is.seekg(0)
验证后寻找文件的开始(请参阅此处的文档),甚至重新打开文件。
相关文章:
- 由cin中的字符串中未捕获空白引起的分割错误
- 我如何使它,无论用户用空白字符串按 Enter 多少次,它总是打印"开始"字符串?
- 对象数组打印空白字符串
- C++忽略使用字符串流进行读取的文本文件中的空白
- 字符串:: substr()返回一个空白字符串
- C 将字符串按空白空间将字符串拆分,除非将其封闭在引号中并存储在向量中
- std :: getline从iStream中直至字符串[]多次空白
- 将utf8编码的字符串转换为本地8位编码的字符串,并将无法确定的字符替换为空白
- 检查字符中的空白和字符串中的数字
- 如何使用c++将字符串中出现的空白替换为下划线
- 如何检查字符串是否包含空格/制表符/换行符(任何空白内容)?
- 如何从字符串流c++中提取空白
- 拆分字符串以仅获取数字数组(转义空白和空格)
- 如何读取文件内容并将其保存到字符串类型变量?为什么有空白空间
- 将空白字符替换为 %20 的字符串,忽略所有尾随空格
- 在空白字符上拆分 UTF-8 编码字符串,而无需了解 UTF-8 编码
- 在文件中搜索字符串(逐行),忽略单词之间空白的大小
- 在c++ 11基于范围的for循环中,通过迭代器删除字符串中的空白
- 删除字符串中的空白
- 不知道为什么我得到空白字符串C++