My code isn\'t counting the number of entries and it isn\'t printing the desired
ID: 3798659 • Letter: M
Question
My code isn't counting the number of entries and it isn't printing the desired result. Could you please take a look at it and troubleshoot it:
Header file
//countryInfo.h
#include <string>
#include <iostream>
#include <fstream>
using std::string;
using std::ifstream;
using std::ofstream;
using std::endl;
using std::cout;
using std::ostream;
using std::istream;
void countryinfo(string input,string output);
Main.cpp
#include "countryinfo.h"
int main ()
{
countryinfo("countryInfo-1.txt", "outputproject.txt");
}
Country.cpp
#include "countryinfo.h"
void countryinfo(string input, string output)
{
ifstream in(input);
ofstream out(output);
string iso;
string iso3;
string isonume;
string fips;
string country;
string capital;
double area;
string population;
string continent;
string tld;
string currencyc;
string currencyn;
string phone;
string postalformat;
string postalreg;
string languages;
string geonameid;
string neighbour;
string equivalent;
string fipscode;
int cunt=0;
getline (in, iso, ' '); //read from in, store iso and table
getline (in, iso3, ' '); //getline will only use string
getline (in, isonume, ' ');
getline (in, fips, ' ');
getline (in, country, ' ');
getline (in, capital, ' ');
in >>area;
in.ignore();
getline (in, population, ' ');
getline (in, continent,' ');
getline (in,tld, ' ');
getline (in, currencyc, ' ');
getline (in, currencyn, ' ');
getline(in,phone, ' ');
getline (in,postalformat,' ');
getline (in,postalreg,' ');
getline (in, languages, ' ');
getline (in, geonameid, ' ');
getline (in,neighbour,' ');
getline (in, equivalent, ' ');
getline (in, fipscode);
while ( !in.fail() )
{
cunt++;
cout<<iso<<" "<<iso3<<" "<<isonume<<" "<<fips<<" "<<country<<" "<<capital<<" "<<area<<" "<<
population<<" "<<continent<<" "<<tld<<" "<<currencyc<<" "<<currencyn<<" "<<phone<<" "<<postalformat
<<" "<<postalreg<<" "<<languages<<" "<<geonameid<<" "<<neighbour<<" "<<equivalent<<" "<<fipscode
<<" "<<endl;
getline( in, iso, ' '); //read from in, store iso and table
getline( in, iso3, ' '); //getline will only use string
getline (in, isonume, ' ');
getline (in, fips, ' ');
getline (in, country, ' ');
getline (in, capital, ' ');
in >>area;
in.ignore();
getline (in, population, ' ');
getline (in, continent,' ');
getline (in,tld, ' ');
getline (in,currencyc, ' ');
getline (in, currencyn, ' ');
getline(in,phone, ' ');
getline (in,postalformat,' ');
getline (in,postalreg,' ');
getline (in, languages, ' ');
getline (in, geonameid, ' ');
getline (in,neighbour,' ');
getline (in, equivalent, ' ');
getline (in, fipscode);
}
cout<<"count = "<<cunt <<endl;
}
for textfile
Go to geonames.org ------------select "Free Gazetteer Data"-----select "Countryinfo.txt"
Explanation / Answer
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <string.h>
using namespace std;
void countryinfo(string input,string output);
int main (){
countryinfo("abc.txt", "outputproject.txt");
return 0;
}
void countryinfo(string input , string output)
{
string iso;
string iso3;
string isonume;
string fips;
string country;
string capital;
double area;
string population;
string continent;
string tld;
string currencyc;
string currencyn;
string phone;
string postalformat;
string postalreg;
string languages;
string geonameid;
string neighbour;
string equivalent;
string fipscode;
char fileName[1024] = {''} ;
int i = 0;
for(i = 0 ; i < sizeof(input) ; i++){
fileName[i] = input[i];
}
ifstream file(fileName);
string line;
string partial;
int count = 0;
while(getline(file, line)) { // ' ' is the default delimiter
istringstream iss(line);
getline (iss, iso, ' '); //read from in, store iso and table
getline (iss, iso3, ' '); //getline will only use string
getline (iss, isonume, ' ');
getline (iss, fips, ' ');
getline (iss, country, ' ');
getline (iss, capital, ' ');
//iss >>area;
//iss.ignore();
getline (iss, population, ' ');
getline (iss, continent,' ');
getline (iss,tld, ' ');
getline (iss, currencyc, ' ');
getline (iss, currencyn, ' ');
getline (iss,phone, ' ');
getline (iss,postalformat,' ');
getline (iss,postalreg,' ');
getline (iss, languages, ' ');
getline (iss, geonameid, ' ');
getline (iss,neighbour,' ');
getline (iss, equivalent, ' ');
getline (iss, fipscode);
count++;
cout<<iso<<" "<<iso3<<" "<<isonume<<" "<<fips<<" "<<country<<" "<<capital<<" "<<area<<" "<<
population<<" "<<continent<<" "<<tld<<" "<<currencyc<<" "<<currencyn<<" "<<phone<<" "<<postalformat
<<" "<<postalreg<<" "<<languages<<" "<<geonameid<<" "<<neighbour<<" "<<equivalent<<" "<<fipscode
<<" "<<endl;
}
cout<<"count = "<<count <<endl;
}
Input for above program text.txt ################
--------------------------------------------------------------------
5880735 Sogi Sogi -14.35417 -170.78361 P PPL AS 050 0 8 17 Pacific/Pago_Pago 2010-10-12
5880736 Niuloa Point Niuloa Point -14.3 -170.67639 T CAPE AS 010 0 50 -9999 Pacific/Pago_Pago 2010-10-12
5880737 Utulei Utulei Utulei, -14.28694 -170.68306 P PPL AS 010 683 126 123 Pacific/Pago_Pago 2010-10-12
5880738 Solo Hill Solo Hill -14.28333 -170.68361 T MT AS 010 0 54 55 Pacific/Pago_Pago 2010-09-05
5880739 Solo Point Solo Point -14.25639 -170.58333 T CAPE AS 010 0 126 127 Pacific/Pago_Pago 2010-10-12
5880740 Afutele Stream Afutele Stream -14.33556 -170.81833 H STM AS 050 0 5 1 Pacific/Pago_Pago 2010-10-12
5880741 Tfeu Cove Tafeu Cove -14.25694 -170.68944 H BAY AS 010 0 209 222 Pacific/Pago_Pago 2010-10-12
5880742 Afu Stream Afu Stream -14.30667 -170.68778 H STM AS 010 0 3 19 Pacific/Pago_Pago 2010-10-12
5880743 Aganoa Aganoa -14.27944 -170.57917 P PPL AS 010 0 21 1 Pacific/Pago_Pago 2010-10-12
5880744 Afulei Afulei -14.28 -170.62389 P PPL AS 010 0 -3 -9999 Pac
Output ###################
---------------------------------------------
880735 Sogi Sogi -14.35417 -170.78361 6.95331e-310 P PPL AS 050 0 8 17 Pacific/Pago_Pago 2010-10-12
880736 Niuloa Point Niuloa Point -14.3 -170.67639 6.95331e-310 T CAPE AS 010 0 50 -9999 Pacific/Pago_Pago 2010-10-12
880737 Utulei Utulei Utulei, -14.28694 -170.68306 6.95331e-310 P PPL AS 010 683 126 123 Pacific/Pago_Pago 2010-10-12
880738 Solo Hill Solo Hill -14.28333 -170.68361 6.95331e-310 T MT AS 010 0 54 55 Pacific/Pago_Pago 2010-09-05
880739 Solo Point Solo Point -14.25639 -170.58333 6.95331e-310 T CAPE AS 010 0 126 127 Pacific/Pago_Pago 2010-10-12
880740 Afutele Stream Afutele Stream -14.33556 -170.81833 6.95331e-310 H STM AS 050 0 5 1 Pacific/Pago_Pago 2010-10-12
880741 Tfeu Cove Tafeu Cove -14.25694 -170.68944 6.95331e-310 H BAY AS 010 0 209 222 Pacific/Pago_Pago 2010-10-12
880742 Afu Stream Afu Stream -14.30667 -170.68778 6.95331e-310 H STM AS 010 0 3 19 Pacific/Pago_Pago 2010-10-12
880743 Aganoa Aganoa -14.27944 -170.57917 6.95331e-310 P PPL AS 010 0 21 1 Pacific/Pago_Pago 2010-10-12
880744 Afulei Afulei -14.28 -170.62389 6.95331e-310 P PPL AS 010 0 -3 -9999 Pac 2010-10-12
count = 10
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.