Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 同时使用fstream和sstream从文件中分离字符串/整数_C++_String_Filestream_Stringstream - Fatal编程技术网

C++ 同时使用fstream和sstream从文件中分离字符串/整数

C++ 同时使用fstream和sstream从文件中分离字符串/整数,c++,string,filestream,stringstream,C++,String,Filestream,Stringstream,所以我想从一个文件中获取信息,它将以名称(字符串)开始,并最终变为整数 例如,对于nums.txt James Smith John Jones Amy Li 1 3 2 3 3 2 4 1 0 我想编写一个程序来存储每个名称(每行一个名称),然后当名称结束,数字开始时,它开始将每个#匹配项添加到数组中。 也就是说,如果出现3 2,我希望 numInt[2] to equal 3 我想使用ifstream从文件中获取输入,并使用stringstream对字符串和整数进行排序。到目前为止,我有

所以我想从一个文件中获取信息,它将以名称(字符串)开始,并最终变为整数

例如,对于nums.txt

James Smith
John Jones
Amy Li
1 3 2 3
3 2 4 1 0
我想编写一个程序来存储每个名称(每行一个名称),然后当名称结束,数字开始时,它开始将每个#匹配项添加到数组中。 也就是说,如果出现3 2,我希望

numInt[2] to equal 3
我想使用ifstream从文件中获取输入,并使用stringstream对字符串和整数进行排序。到目前为止,我有这个

int main() {
 string names[10];
 int numNames = 0;
 int numInt[100] = {};
 ifstream file("nums.txt");
 stringstream ss;
 string s;
 int n;

 while (file >> ss) {
  while (ss >> s) {
   names[numNames] = s;
   numNames++;
  }
  while (ss >> n) {
   numInt[n]++;
  }
 }
 return 0;
}

我知道我做错了,但我不知道如何正确地做到这一点

我想我应该这样做:

while (file >> ss) {
    if (isalpha((unsigned char)ss[0])
       names.push_back(ss);
    else {
       std::istringstream buf(ss);
       int n;

       while (buf >> n)
           numbers.push_back(n);
    }
}
这支持您的要求,但没有严格执行。瞧,如果你有这样的事情:

Joe Blow
1 2 3
Jerry Coffin
…它会把“乔·布鲁”和“杰里·科芬”放在
名字中
1
2
3
放在
数字中