如何读入c++;细流 我已经收到了一份文件,从中我需要阅读一些重要的信息到我的C++程序中。这些信息以以下方式提供:

如何读入c++;细流 我已经收到了一份文件,从中我需要阅读一些重要的信息到我的C++程序中。这些信息以以下方式提供:,c++,stringstream,C++,Stringstream,关键字:关键字类型的值 其中,关键字类型的值通常包含一个整数值。我使用以下方案将该值读入我的程序: int variable_to_store_value = 0; std::string content_of_line = ""; std::getline(file,content_of_line); std::stringstream stream(content_of_line); std::string threshold; stream >> thres

关键字:关键字类型的值

其中,关键字类型的值通常包含一个整数值。我使用以下方案将该值读入我的程序:

int variable_to_store_value = 0;
std::string content_of_line = "";
std::getline(file,content_of_line);
std::stringstream stream(content_of_line);
std::string threshold;
stream >> threshold >> threshold >> variable_to_store_value ;
使用threshold变量对我来说似乎是可以扩展的,但是我不确定解决这个问题的最正确的方法是。。。还请让我知道,是否有一个更有效的方式在运行时间方面为这些事情。 提前非常感谢您试图帮助我解决我的问题

使用
threshold
变量对我来说似乎是可以扩展的,但我不确定解决这个问题的最正确方法是

我建议只需完全去掉
threshold
变量,而是使用
stream.ignore()
方法跳过您不想要的内容,例如:

#包括
#包括
#包括
std::行的字符串内容;
if(std::getline(文件,行的内容)){
std::istringstream流(行的内容);
忽略(std::numeric_limits::max(),':');
int变量_to_store_值=0;
if(流>>变量到存储值){
//根据需要使用变量\u存储\u值。。。
}
}
或者,您也可以去掉
变量:

#包括
if(file.ignore(std::numeric_limits::max(),':')){
int变量_to_store_值=0;
if(流>>变量到存储值){
//根据需要使用变量\u存储\u值。。。
}
ignore(std::numeric_limits::max(),'\n');
}
使用
threshold
变量对我来说似乎是可以扩展的,但我不确定解决这个问题的最正确方法是

我建议只需完全去掉
threshold
变量,而是使用
stream.ignore()
方法跳过您不想要的内容,例如:

#包括
#包括
#包括
std::行的字符串内容;
if(std::getline(文件,行的内容)){
std::istringstream流(行的内容);
忽略(std::numeric_limits::max(),':');
int变量_to_store_值=0;
if(流>>变量到存储值){
//根据需要使用变量\u存储\u值。。。
}
}
或者,您也可以去掉
变量:

#包括
if(file.ignore(std::numeric_limits::max(),':')){
int变量_to_store_值=0;
if(流>>变量到存储值){
//根据需要使用变量\u存储\u值。。。
}
ignore(std::numeric_limits::max(),'\n');
}

看起来您已经在做您要求的事情了。在非常仔细地分析应用程序和操作系统之后,是否有一种更有效的方法来运行这些事情,这可能取决于您的硬件。您的编译器应该已经很好地优化了您的代码。“可扩展”->“可消耗”?虽然我看不出读前两个单词有什么问题,当你想做的时候就忽略它们。只有当
关键字:
的长度固定且已知时,您才可以使用快捷方式
对于这些内容,在运行时方面有一种更有效的方法
有。。。但是你那么在乎效率吗?您是否分析了您的代码,并且在程序中读取该特定字符串是bootleneck?还记得前2段吗。更喜欢没有bug的可读代码。顺便说一句,刚从
文件中读到,为什么要使用
getline+stringstream
?我是第二个KamilCuk。如果此代码执行一次以从文件中读取某些内容,那么“高效”更多的是简单易读,可维护性,而不是像你已经在做你要求的那样从Runtimeook中挤出一些ms。如果有一种更有效的方式在运行时解决这些问题,在非常仔细地分析你的应用程序和操作系统之后,这可能取决于你的硬件。您的编译器应该已经很好地优化了您的代码。“可扩展”->“可消耗”?虽然我看不出读前两个单词有什么问题,当你想做的时候就忽略它们。只有当
关键字:
的长度固定且已知时,您才可以使用快捷方式
对于这些内容,在运行时方面有一种更有效的方法
有。。。但是你那么在乎效率吗?您是否分析了您的代码,并且在程序中读取该特定字符串是bootleneck?还记得前2段吗。更喜欢没有bug的可读代码。顺便说一句,刚从
文件中读到,为什么要使用
getline+stringstream
?我是第二个KamilCuk。如果此代码执行一次以从文件中读取某些内容,那么“高效”更多的是简单、可读、可维护性,而不是从运行时挤出一些ms