我有一个文件,其中的映射条目由行分隔,键和值由“:”分隔,所以类似于:
one : 1
二:2
三:3
四:4
我在一个名为 dict 的 ifstream 中打开它,然后运行以下代码:
string key, value;
map< string, int > mytest;
while( getline( dict, key, ':' ).good() && getline( dict, value ).good() )
{
mytest[key] = atoi( value.c_str() );
}
有一个更好的方法吗?是否有 getline 功能可以从键中删除空格? (我试图在没有提升的情况下做到这一点。)
是的,你可以简单地将冒号扔进垃圾变量中
string key, colon;
int value;
while(cin >> key >> colon >> value)
mytest[key] = value;
这样,您应该可以确定冒号是用空格分隔的,并且您的密钥不包含任何空格。否则它将在密钥字符串内读取。或者你的字符串部分将被读取为冒号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)