I have a csv file that is being read as a continous string of different characters and values(integers and Real #'s).

I separated these 35 different values by interating with factor of 35.

My goal now is to convert these different characters and values into int, float, and keep some as strings.

I have began trying to do some below, but I can only do it with integer values and it does not seem to work for float values. I also can't figure how to switch more than two ranges of values while converting them into arrays.

for (unsigned i = 0; i < all_words.size(); i+=35)
	{
		outfile << all_words[i] << "\t" << all_words[1+i] << "\t" << all_words[2+i] << "\t" << all_words[3+i] << "\t" << all_words[4+i] << "\t" << all_words[5+i] << "\t" << endl;
		
		string word = all_words[1+i];
		double RID;
		istringstream ss( word );
		ss >> RID;
		cout << RID << endl;

	
	}
}

what type is all_words? Maybe you can post a compilable example and demonstrate the problem with some sample input, the current output, and the expected output?

what type is all_words? Maybe you can post a compilable example and demonstrate the problem with some sample input, the current output, and the expected output?

#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <vector>
#include <locale>

using namespace std;

int main()
{
    ifstream infile("C:\\Dokumente und Einstellungen\\Yaser\\Eigene Dateien\\Internship\\C++_Code\\Sample1.txt");
	ofstream outfile("C:\\Dokumente und Einstellungen\\Yaser\\Eigene Dateien\\Internship\\C++_Code\\Output.txt");


	string line = "";
    vector<string> all_words;

    while (getline(infile, line))
	{
        stringstream strstr(line);
        string word = "";
		strstr.imbue(locale("german_germany.1252"));
        while (getline(strstr,word, ';')) 
		all_words.push_back(word);
    }
		
	for (unsigned i = 0; i < all_words.size(); i+=35)
	{
		outfile << all_words[i] << "\t" << all_words[1+i] << "\t" << all_words[2+i] << "\t" << all_words[3+i] << "\t" << all_words[4+i] << "\t" << all_words[5+i] << "\t" << endl;
		
		string word = all_words[i];
		int RID;
		istringstream ss( word );
		ss >> RID;
		cout << RID+RID << endl;

	
	}

	return 0;
}

Alright here it is. The input file and the output file are attached.

The outfile is just how I want to organize the file and values. I put the values into like columns and now I want to take each column from the outfile and convert it from a string to the format I want.

The first column was converted to int values as I have done successfully already. I add "RID" twice to make sure it was properly converted. I just can't figure how to convert the next column from the outfile into double and so forth.

I would also like to keep them as arrays during the process.

Thanks!

Attachments
2	-4,670450021	31	Hella_Bredel	None	1	
2	-3,738655469	32	Hella_Bredel	None	1	
2	-4,198294889	33	Hella_Bredel	None	1	
2	-3,266770307	34	Hella_Bredel	None	1	
2	-1,443485003	35	Hella_Bredel	None	1	
2	-1,900066769	36	Hella_Bredel	None	1	
2	-0,379327603	37	Hella_Bredel	None	1	
2	-3,323222498	38	Hella_Bredel	None	1	
2	-1,898776166	39	Hella_Bredel	None	1	
2	-0,320299824	40	Hella_Bredel	None	1	
2	-1,079438296	41	Hella_Bredel	None	1	
2	-0,869658095	42	Hella_Bredel	None	1	
2	-1,091788733	43	Hella_Bredel	None	1	
2	-0,618155105	44	Hella_Bredel	None	1	
2	-0,715900754	45	Hella_Bredel	None	1	
2	1,380151606	46	Hella_Bredel	None	1	
2	1,361041925	47	Hella_Bredel	None	1	
2	0,864530337	48	Hella_Bredel	None	1	
2	0,276501934	49	Hella_Bredel	None	1	
2	-1,110357783	50	Hella_Bredel	None	1	
2	-0,373030088	51	Hella_Bredel	None	1	
2	-1,131850433	52	Hella_Bredel	None	1	
2	-0,620508453	53	Hella_Bredel	None	1	
2	1,739203532	54	Hella_Bredel	None	1	
2	-0,747288315	55	Hella_Bredel	None	1
2;-4,670450021;31;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;studies_map;00:00:00.693;0,693;-1;0,260684;0,925606;-0,571543319;414005,1004;5317097,583;0;0;0;0;0;000001_000001;-1;-1;2;0;12,769;0;0;414006,4739;5317102,047;6,705111848
2;-3,738655469;32;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:00:00.721;0,721;-1;0,260684;0,922145;-0,56940622;414005,3513;5317098,481;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;414006,4508;5317102,054;6,729328402
2;-4,198294889;33;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;standing_1s;00:00:01.160;1,16;-1;0,264957;0,923875;-0,570474461;414007,0195;5317097,487;0;0;0;0;0;-1;-1;000001_000001;2;0;0;0;6,919;414008,2541;5317101,499;4,842511269
2;-3,266770307;34;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;walking;00:00:08.079;8,079;-1;0,264957;0,920415;-0,56833798;414007,2703;5317098,384;0;0;0;0;0;-1;-1;000001_000001;2;0;0;0;6,919;414008,231;5317101,506;4,866721131
2;-1,443485003;35;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;map_removed;00:00:13.462;13,462;-1;0,237179;0,913495;-0,564065017;413996,112;5317103,725;0;0;0;0;0;000001_000001;-1;-1;2;0;12,769;0;0;413996,5365;5317105,105;17,10231471
2;-1,900066769;36;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:00:13.939;13,939;-1;0,24359;0,915225;-0,565133258;413998,6776;5317102,458;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;413999,2364;5317104,274;14,27748221
2;-0,379327603;37;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:00:29.855;29,855;-1;0,202991;0,911765;-0,562996776;413981,8868;5317108,538;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;413981,936;5317108,914;32,21426794
2;-3,323222498;38;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:00:36.875;36,875;-1;0,188034;0,929066;-0,5736798;413974,3544;5317105,96;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;413974,3565;5317109,283;39,81061021
2;-1,898776166;39;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;studies_map;00:00:49.628;49,628;-1;0,150641;0,922145;-0,56940622;413959,1602;5317112,529;0;0;0;0;0;000001_000002;-1;-1;2;0;2,616;0;0;413960,2077;5317114,113;55,01667225
2;-0,320299824;40;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;map_removed;00:00:52.244;52,244;-1;0,141026;0,910035;-0,561928536;413956,0022;5317116,897;0;0;0;0;0;000001_000002;-1;-1;2;0;2,616;0;0;413956,2561;5317117,093;59,98683016
2;-1,079438296;41;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;studies_map;00:00:54.524;54,524;-1;0,134615;0,897924;-0,554450234;413954,189;5317120,857;0;0;0;0;0;000001_000003;-1;-1;2;0;5,04;0;0;413955,2606;5317120,727;63,8516161
2;-0,869658095;42;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:00:54.612;54,612;-1;0,142094;0,913495;-0,564065017;413956,1996;5317115,864;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;413956,7951;5317116,497;59,18303746
2;-1,091788733;43;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;standing_1s;00:00:55.650;55,65;-1;0,141026;0,913495;-0,564065017;413955,7513;5317116;0;0;0;0;0;-1;-1;000001_000002;2;0;0;0;3,196;413956,5521;5317116,742;59,52787362
2;-0,618155105;44;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;walking;00:00:58.846;58,846;-1;0,135684;0,897924;-0,554450234;413954,6378;5317120,721;0;0;0;0;0;-1;-1;000001_000002;2;0;0;0;3,196;413955,2524;5317120,655;63,77911125
2;-0,715900754;45;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;map_removed;00:00:59.564;59,564;-1;0,135684;0,889273;-0,549108413;413955,2649;5317122,965;0;0;0;0;0;000001_000003;-1;-1;2;0;5,04;0;0;413955,8857;5317122,608;65,8469308
2;1,380151606;46;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;studies_map;00:01:06.593;66,593;-1;0,151709;0,865052;-0,534152427;413963,7472;5317127,201;0;0;0;0;0;000001_000004;-1;-1;2;0;10,397;0;0;413962,96;5317128,335;74,99874366
2;1,361041925;47;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:01:07.333;67,333;-1;0,147436;0,873702;-0,53949363;413961,3266;5317125,503;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;413960,5253;5317126,603;72,01102848
2;0,864530337;48;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;map_removed;00:01:16.990;76,99;-1;0,159188;0,847751;-0,523469403;413968,1407;5317130,734;0;0;0;0;0;000001_000004;-1;-1;2;0;10,397;0;0;413967,6783;5317131,465;80,66103411
2;0,276501934;49;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:01:17.170;77,17;-1;0,160256;0,842561;-0,520264681;413968,9652;5317131,944;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;413968,8197;5317132,179;82,00763348
2;-1,110357783;50;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:01:31.139;91,139;-1;0,183761;0,797578;-0,492488572;413982,0923;5317140,611;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;413982,5619;5317139,605;97,63679427
2;-0,373030088;51;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:01:38.936;98,936;-1;0,201923;0,776817;-0,479669067;413991,2209;5317143,677;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;413991,3539;5317143,329;107,1871266
2;-1,131850433;52;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;studies_map;00:01:39.307;99,307;-1;0,213675;0,759516;-0,468986043;413997,408;5317146,665;0;0;0;0;0;000001_000005;-1;-1;2;0;3,42;0;0;413997,7572;5317145,588;113,9779274
2;-0,620508453;53;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;map_removed;00:01:42.727;102,727;-1;0,226496;0,747405;-0,461507741;414003,6676;5317148,169;0;0;0;0;0;000001_000005;-1;-1;2;0;3,42;0;0;414003,899;5317147,594;120,4411081
2;1,739203532;54;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:01:47.144;107,144;-1;0,229701;0,754325;-0,465780704;414004,5113;5317145,965;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;414003,8644;5317147,58;120,4038306
2;-0,747288315;55;Hella_Bredel;None;1;Ikonische Karte;15. Okt 08;/home/versuchsleiter/wayTracer/madway/trunk/Design_Videologging.xml;18:46:45.963;manpos;00:01:56.108;116,108;-1;0,245726;0,709343;-0,438005212;414014,4986;5317155,587;0;0;0;0;0;-1;-1;-1;2;0;0;0;0;414014,9764;5317155,012;133,8551661

You can use the stringstream to convert the string to any valid numerical type, as long as the variable you are reading into is in scope. As long as you know the makeup of the file you can use control statements/loops to determine how many in each line to convert into ints vs doubles vs whatever and when to switch from one variable type to another. So, say the file is made up as follows: each line has 5 delimited fields---int, int, double, double, int. You have successfully extracted each field into a string and have stored each string in an array/vector called tokens. You now want to convert each string into it's numerical value:

int tempI;
double tempD;
int i = 0;
for( ; i < 2; ++i)
{
    istringstream iss(tokens[i]);
    ss >> tempI;
    cout << tempI << ' ';
}
for( ; i < 4; ++i)
{
   istringstream iss(tokens[i]);
   iss >> tempD;
   cout << tempD << ;
}
istringstream iss(tokens[i]);
iss >> tempI;
cout <<  tempI;
This article has been dead for over six months. Start a new discussion instead.