Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7659021
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T13:16:39+00:00 2026-05-31T13:16:39+00:00

This program is supposed to open a txt file, record the answers from two

  • 0

This program is supposed to open a txt file, record the answers from two different questions, close the file, and then reopen it in a function called the accumulatingFunction so the answers for each question can be counted.

I’ve managed to get it to work but my problem is that when I close out the program there will be say, 3 instances of each answer, but when I open the program and add 1 answer of each question it will still say that I have 3 instances of that answer.

I’m assuming that its over writing one of the answers that are already there, and I can’t for the life of me figure out how to make it stop. (also, right now the accumulatingFunction is only checking for the first answer of each question. I wanted to make sure this was possible before I add in the rest. Or I thought that maybe you guys will have another way of doing this.)

#include<iostream>
#include<string>
#include<fstream>
using namespace std;

double userInput = 0;
string ethnicityQuestion();
void validationFunction(int);
string politicalQuestion();
void accumulatingFunction();



//-----------------------------------------------------------------------------------------------

int main()
{
    string ethnicityAnswer, politicalAffiliationAnswer, userID;
    fstream answerFile;

answerFile.open("F:\\midTermFile.txt");



if (!answerFile)
    cout << "You have a file read error" <<endl;


while (userID != "done")
{

ethnicityAnswer = ethnicityQuestion();
system("cls");

politicalAffiliationAnswer = politicalQuestion();
system("cls");


answerFile << ethnicityAnswer << endl;
answerFile << politicalAffiliationAnswer << endl;

cout << "you made it back to the main function and you chose " << ethnicityAnswer << " as your ethnicity\n"<< endl;
cout << "you made it back to the main function and you chose " << politicalAffiliationAnswer << " as your political affiliation\n"<< endl;

accumulatingFunction();

cout << "Please enter your user ID:  ";
cin >> userID;

}
answerFile.close();


return 0;
}

//-----------------------------------------------------------------------------------------------

string ethnicityQuestion()
{

    string ethnicity;
    int selection = 6;

string A = "Native_American";
string B = "Asian";
string C = "African American";
string D = "Hispanic/Latino";
string E = "Caucasion";
string F = "Other";

cout << "What ethnicity do you claim?\n";
cout << "1. Native American\n";
cout << "2. Asian\n";
cout << "3. African American\n";
cout << "4. Hispanic/Latino\n";
cout << "5. Caucasion\n";
cout << "6. Other\n";

validationFunction(selection);


if (userInput == 1)
    ethnicity = A;
else if (userInput == 2)
    ethnicity = B;
else if (userInput == 3)
    ethnicity = C;
else if (userInput == 4)
    ethnicity = D;
else if (userInput == 5)
    ethnicity = E;
else if (userInput == 6)
    ethnicity = F;

return ethnicity;
}

//------------------------------------------------------------------------------------------------

string politicalQuestion()
{
    string affiliation; 
    int selection = 6;

string A = "Very_Conservative";
string B = "Moderately Conservative";
string C = "Very Liberal";
string D = "Moderately Liberal";
string E = "Neither";
string F = "In the Middle";

cout << "On most political issues, which of the following do you associate with most:\n";
cout << "1. Very Conservative\n";
cout << "2. Moderately Conservative\n";
cout << "3. Very Liberal\n";
cout << "4. Moderatly Liberal\n";
cout << "5. Neither\n";
cout << "6. In the Middle\n";

validationFunction(selection);


if (userInput == 1)
    affiliation = A;
else if (userInput == 2)
    affiliation = B;
else if (userInput == 3)
    affiliation = C;
else if (userInput == 4)
    affiliation = D;
else if (userInput == 5)
    affiliation = E;
else if (userInput == 6)
    affiliation = F;

return affiliation;
}

//-----------------------------------------------------------------------------------

void validationFunction(int choiceAmount)
{
    while ((!(cin >> userInput)) || (userInput > choiceAmount || userInput < 1))
    {                       
        cin.clear();
        cin.ignore(INT_MAX, '\n');
        cout << "Please enter a number between 1 and 6: ";
    }
}

//------------------------------------------------------------------------------------------------

void accumulatingFunction()
{
    string userAnswer;
    double nativeAmerican = 0, veryConservative = 0;



    ifstream countFile;
    countFile.open("F:\\midTermFile.txt");



    while (!countFile.eof()) 
        {countFile >> userAnswer;

            if (userAnswer == "Native_American")
                nativeAmerican += 1;
            else if (userAnswer == "Very_Conservative")
                    veryConservative += 1;
            userAnswer = "";
        }
            cout << nativeAmerican << endl;
            cout << veryConservative << endl;

        countFile.close();
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T13:16:40+00:00Added an answer on May 31, 2026 at 1:16 pm

    Your problem are the parameters you don’t pass to fstream::open. You have to pass fstream::out | fstream::app as your second parameter.

    Also see the fstream::open reference.

    Also, since you are not reading from the file in main() you should use ofstream instead of fstream.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This program reads emails (really just a .txt file structured like an email) and
I'm using the Excel.Application COM object from a Python program to open a CSV
Why this script opens file as soon as it is launched? No program is
Hello i am making a program that is supposed to copy a text file.
In My program I have a file and then I read through all the
I would like to open 10,000 files with file names starting from abc25000 until
[EDIT] I try to open a file from a folder in my base directory.
Say suppose I am running a java program through command line. And this program
Suppose that I have a Java program within an IDE (Eclipse in this case).
This program I use has it's own variables to set when you run it,

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.