【发布时间】:2012-10-05 02:16:53
【问题描述】:
我有一个文本文件,其数字范围为 0-255,以逗号分隔。我希望能够将这些数字中的每一个存储到一个整数数组中。文本文件可能包含的一个示例是; "32,51,45,12,5,2,7,2,9,233,132,175,143,33..."等
我已经设法让我的程序将文本文件中的数据存储为字符串并将它们输出到屏幕上。接下来我需要做的是将该字符串的值存储在一个整数数组中,用逗号分隔数字。
这是我到目前为止编写的代码,但我无法让它工作;
int _tmain(int argc, _TCHAR* argv[])
{
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( myfile.good() )
{
getline (myfile,line);
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
//STRING CONVERSION
std::string str = line;
std::vector<int> vect;
std::stringstream ss(str);
int i = 0;
while (ss >> i)
{
vect.push_back(i);
if (ss.peek() == ',')
ss.ignore();
}
system("pause");
return 0;
【问题讨论】:
-
代码的哪一部分导致了问题?换句话说,你的问题是什么?
-
@pedrofurla 我收到错误消息“无法找到或打开 PDB 文件”,即使正在定位和读取该文件。但我的主要问题是我是否正确执行了操作的第二部分(字符串转换)?这是正确的方法吗?
-
编辑问题,以便它提供正确的信息和实际提出的问题。不要指望人们只看你的并修复它。
-
对于你的问题,我认为它会像你一样工作(至少是逗号分隔),但我认为如果你读完
int并且 peek() 没有给出回一个逗号,你可能应该打破你的循环(尽管它可能会在下一次读取时失败)。
标签: c++ arrays string parsing csv