【发布时间】:2015-11-19 18:35:46
【问题描述】:
int a, b;
while (infile >> a >> b)
{
// process pair (a,b)
}
所以这是我一直在看的代码,但我遇到了一个问题,因为我的字符串之间没有空格,它们有“;”
我的代码:
void load(string filename){ // [LOAD]
string line;
ifstream myfile(filename);
string thename;
string thenumber;
if (myfile.is_open())
{
while (myfile >> thename >> thenumber)
{
cout << thename << thenumber << endl;
//map_name.insert(make_pair(thename,thenumber));
}
myfile.close();
}
else cout << "Unable to open file";
}
[Inside the txt.file]
123;peter
789;oskar
456;jon
我现在得到的是“thename”为 123;peter 和“thenumber”为 789;oskar。 我希望“thename”为 peter,“thenumber”为 123,这样我就可以正确地将其插入到我的地图中,如何?
【问题讨论】:
-
您是文本文件
123;peter还是peter;123?你的代码说它应该是peter;123,但你说你的文本文件是123;peter -
@Widdin 如果您有
123;peter,您可以将123提取为整数类型,然后提取myfile.get(),然后提取myfile >> thename。如果相反,请使用std::getline和;作为分隔符。 -
我的 while 循环的问题是字符串 thename 的值是“123;peter”,而数字是“789;oskar”,它应该是分开的,所以 thename 是 peter,数字是 123对于每一行,这样我就可以将其正确插入到我的地图中,如 insert(name,number)
-
但是我需要另外10行代码>.>,有没有更简单的方法如上图?