C++ 无法使用stringstream读取int和double #包括 #istringstream的include// int main(){ std::istringstream iss; std::字符串tempSTR; INTA; 双B; std::co

C++ 无法使用stringstream读取int和double #包括 #istringstream的include// int main(){ std::istringstream iss; std::字符串tempSTR; INTA; 双B; std::co,c++,stringstream,C++,Stringstream,无法使用stringstream读取int和double #包括 #istringstream的include// int main(){ std::istringstream iss; std::字符串tempSTR; INTA; 双B; std::couttempSTR; iss.str(tempSTR); iss>>A; 标准::cout`` #包括 #istringstream的include// //使用stringstream读入多个参数 int main(){ std::istri

无法使用stringstream读取int和double
#包括
#istringstream的include//
int main(){
std::istringstream iss;
std::字符串tempSTR;
INTA;
双B;
std::couttempSTR;
iss.str(tempSTR);
iss>>A;
标准::cout
``
#包括
#istringstream的include//
//使用stringstream读入多个参数
int main(){
std::istringstream iss;
std::字符串tempSTR;
INTA;
双B;
std::couttempSTR;
iss.str(tempSTR);
iss>>A;
iss.clear();

std::cout
iss.str(tempSTR)
重置流的内容,但不清除EOF等标志。请在
iss.str(tempSTR)之后尝试
iss.clear()
,或者每次使用一个单独的实例,不要尝试重复使用同一个实例。或者,只需跳过
istringstream
,然后执行
std::cin>>a
std::cin>>B
;不清楚为什么要从中间字符串表示开始。更容易的是忘记istringstream并使用它的乐趣ctions
stoi
stod
直接将字符串转换为int和double,而不需要字符串流。好吧,这个问题已经得到了回答。不过出于好奇,@IgorTandetnik使用一个字符串流并每次清除它不是更好吗?
#include <iostream>
#include <sstream>//for istringstream

int main(){
    
    std::istringstream iss;
    std::string tempSTR;
    int A;
    double B;
    std::cout<<"Please enter an int.\n";
    std::cin>>tempSTR;
    iss.str(tempSTR);
    iss>>A;
    std::cout<<"A = "<<A<<"\n";
    std::cout<<"Please enter a double.\n";
    std::cin>>tempSTR;
    iss.str(tempSTR);
    iss>>B;
    std::cout<<"B = "<<B<<"\n";

    std::cout<<"\nEND OF PROGRAM. GOODBYE!\n\n";
}//end of main
``
#include <iostream>
#include <sstream>//for istringstream
//Using stringstream to read in multiple arguments
int main(){
    
    std::istringstream iss;
    std::string tempSTR;
    int A;
    double B;
    std::cout<<"Please enter an int.\n";
    std::cin>>tempSTR;
    iss.str(tempSTR);
    iss>>A;
    iss.clear();
    std::cout<<"A = "<<A<<"\n";
    std::cout<<"Please enter a double.\n";
    std::cin>>tempSTR;
    iss.str(tempSTR);
    iss>>B;
    iss.clear();
    std::cout<<"B = "<<B<<"\n";

    std::cout<<"\nEND OF PROGRAM. GOODBYE!\n\n";
}//end of main
``
//Question:Unable to use stringstream to read in int and double
//Answer:stream just needed to be cleared before using it to read in another argument.