0

嘿,我对 C++ 很陌生,我遇到了一个问题:

我有一个看起来像这样的文本文件:

500

1120

10

number1,1 number1,2   ...   number1,500

number2,1

.

.

number1120,1

因此,文本文件顶部的前两个值描述了矩阵的维度。我现在想编写一个代码,它将矩阵中的所有文件读取到一个数组或int值向量中。getline我可以读取前三个值 (500, 1120,10) 并使用and将它们写入整数值stringstream,但我不知道如何读取用循环分隔的矩阵抽头。

4

2 回答 2

2

像这样的东西:

#include <iostream>
#include <sstream>

// Assume input is 12,34,56. You can use 
// getline or something to read a line from
// input file. 
std::string input = "12,34,56";

// Now convert the input line which is string
//  to string stream. String stream is stream of 
// string just like cin and cout. 
std::istringstream ss(input);
std::string token;

// Now read from stream with "," as 
// delimiter and store text in token named variable.
while(std::getline(ss, token, ',')) {
    std::cout << token << '\n';
}
于 2018-01-10T13:28:18.580 回答
0

您可以考虑使用循环逐行读取矩阵,并使用标记器(例如std::strtok)或嵌套循环在分隔符处拆分行来拆分当前行。有一个关于标记器的线程。

于 2018-01-10T13:04:47.103 回答