gpt4 book ai didi

c++ - 从 txt 文件中读取 2 列

转载 作者:行者123 更新时间:2023-11-30 02:56:22 26 4
gpt4 key购买 nike

我正在用 C++ 编写一个小程序,有一个输入文件,需要逐行读取,文件中有 2 列,字符串名称和整数。例如:

abad 34
alex 44
chris 12

我写了这样的代码:

ifstream input("file.txt");
int num;
string str;

while( getline( input, line ) ){
istringstream sline( line );
if( !(sline>>str>>num) ){
//throw error
}
...
}

我需要在某些情况下抛出错误:

如果没有数字 - 只写名字,例如abad(实际上我的代码出错了),

如果有名字但没有数字,例如:abad 34a(34a 中的字母 a 被忽略并在我的代码中转移到 34 而应该触发错误) ,

或者如果有超过 2 列,例如abad 34 45(忽略第二个数字)。

如何正确读取输入数据(并且没有迭代器)?

最佳答案

试试这个:

if( !(sline >> str >> num >> std::ws) || sline.peek() != EOF ) {
//throw error
}

std::ws是一个流操纵器,它提取 num 之后的可能空白.包括<iomanip>为了它。接下来检查流中的窥视是否返回 EOF。如果没有,则您有更多输入等待,这是一个错误。

关于c++ - 从 txt 文件中读取 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15597709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com