firstName文字列を取り出そうとしていますが、非常に奇妙な出力が出ています。Cでのfind()コマンドの問題
サンプルデータ: 75428マーストン、エドワード
募集出力: マーストンエドワード75428
出力受信: マーストン、EDWAエドワード75428
コード:
ifstream textFile("NameZip.txt");//File initializer
int counter = 0; //Used to cycle data into struct[] implementData. Avoiding a longer more memory hungry alternative since we know the file is going to be 20 lines long
int tmpZip;
string tmpString;
personData implementData[20];//creates object for structure
if(textFile.is_open())//checks to make sure file exists in same folder to avoid errors
{while(getline(textFile,tmpString))
{
stringstream convert(tmpString.substr(0,6));
convert >> tmpZip; //pulls out the Zipcode
string firstName = tmpString.substr(tmpString.find(" ") +1,tmpString.find(","));//pulls out the first name
string lastName = tmpString.substr(tmpString.find(",")+2); //pulls out last name
implementData[counter++] = {tmpZip,firstName,lastName}; //sets value for that tab in the structure personData
}}else
cout << "There was a problem reading from the textFile\nPlease make sure the file is in the same folder as the .cpp program" << endl;
printData(implementData);
return 0;
にですこの1つのデータだけでなく、ファーストネームのすべてのデータがsto pをカンマで止めるのではなく、13番目の文字に置き換えます。データを間違って分割していますか?ブーストスピリットの
使用この参照:に並ぶ
変更http://stackoverflow.com/questions/236129/split-a-string-in-c –