c++ - 如何从文本文件的同一行读取字符串和整数?

标签 c++

我有这个例子,

在我的 .txt 文件中有“Jorge Saraiva 1321312”

我的.cpp

string line, nome;
int number;

ifstream ifi("nameOfFile.txt");

 if(!ifi.is_open()){
   cout << "Error opening file" << ends;
 }
 {
  else{
    while( getline(ifi,line) ){
      istringstream is(line);

       is >> nome; 
       is >> number; 
    }
    ifi.close();
  }
 cout << nome  << endl << number << ends;

有了这个,我只有名字(“Jorge”),我不确定如何在名称/字符串结束时告诉编译器。

最佳答案

您正在尝试将字符串(第二个)放入数字中,这是意外输出的原因。 Directing it to a string应该解决这个问题。您可以丢弃该字符串,没关系。

string line, name, dummy;
int number;
while(getline(ifi, line)){  
    istringstream iss1(line);
    iss1 >> name; 
    iss1 >> dummy;
    iss1 >> number; 
}

关于c++ - 如何从文本文件的同一行读取字符串和整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40439057/

相关文章:

C++ 优化数组从 int 到 float 的转换

c++ - 指向成员函数的指针如何工作?

c# - 不同机器执行相同API的时间差

c++ - 不能在 C++20 (Visual Studio) 中使用 iostream 作为模块

c++ - 如何在openGL c++中的同一窗口中绘制两个对象?

c++ - 为什么编译器可以比普通函数更好地优化 lambda?

c++ - SSE half loads (_mm_loadh_pi/_mm_loadl_pi) 发出警告

c++ - 如何使用模板元编程重构此循环?

c++ - 如何使我的线性探测哈希表更高效?

c++ - C++ 中的沙漏,hackerrank