Can't open the .txt file!

So, I have the read function to my file set up, but every time I run the program to read the file it will not open, and it displays: "File not open". What am I doing wrong?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void readData(void)
{
	ofstream outMyStream;
	outMyStream.open("c:\\desktop\\TestAddress.txt");
	if (!outMyStream.is_open())
	{
		cout << "File Not open\n";
		return;
	}
	else if (outMyStream.is_open())
	{
		ifstream inMyStream(FileName, ios::in);
		string firstline;
		inMyStream >> firstline;
			getline(inMyStream, firstline, '\n');
			cout << endl;
			string *theFields = split(firstline, ',');
			cout << "....................................." << endl;
			cout << "Name...... " << theFields[0];
			cout << "\nStreet.... " << theFields[1];
			cout << "\nCity...... " << theFields[2];
			cout << "\nState..... " << theFields[3];
			cout << "\nZip code.. " << theFields[4];
			cout << "....................................." << endl;

	}
	


Entire Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void menu(void);
void writeData(void);
void readData(void);
string * split(string, char);

const char FileName[] = "TestAddress.txt";
int main()
{
	menu();
	return 0;
} //end main

void menu(void)
{
	char answer;
	int i = 0, x = 0;
	while (i == 0)
	{
		cout << "What would you like to do?\n";
		cout << "Append Records (A), Display Records (D), or Quit (Q)\n";
		cin >> answer;
		answer = tolower(answer);
		switch (answer)
		{
		case 'a': writeData(); break;
		case 'd': readData(); break;
		case 'q': return;
		default: x = 1; break;
		} //end switch

		while (x != 0)
		{
			cout << "\n\nError: Append Records (A), Display Records (D), or Quit (Q):\t";
			cin >> answer;
			cout << "\n\n" << endl;
			if ((answer == 'a') || (answer == 'd') || (answer == 'q'))
			{
				x = 1;
				break;
			}//end if
			else
			{
				break;
			}//end else
		}//end second while
	}//end first while
	cout << "\nWhat would you like to do now?\n";
	cout << "Append Records (A), Display Records (D), or Quit (Q)\n";
	cin >> answer;
}//end menu

void writeData(void)
{
	char answer;
	string name = " ";
	string street = " ";
	string city = " ";
	string state = " ";
	string zipCode = " ";
	ofstream test("c:\\desktop\\TestAddress.txt", ios::app);

	do
	{
		cin.ignore(); //need this or else it will skip name inpout
		cout << "\nName: ";
		getline(cin, name);
		cout << "\nStreet: ";
		getline(cin, street);
		cout << "\nCity: ";
		getline(cin, city);
		cout << "\nState: ";
		getline(cin, state);
		cout << "\nZip code: ";
		getline(cin, zipCode);

		test << name << "," << street << "," << city << "," << state << "," << zipCode;

		cout << "\nEnter another Record? (Y/N) ";
		cin >> answer;
		answer = tolower(answer);
	} while (answer == 'y');
	test.close();
	return;
}//end write data

void readData(void)
{
	ofstream outMyStream;
	outMyStream.open("c:\\desktop\\TestAddress.txt");
	if (!outMyStream.is_open())
	{
		cout << "File Not open\n";
		return;
	}
	else if (outMyStream.is_open())
	{
		ifstream inMyStream(FileName, ios::in);
		string firstline;
		inMyStream >> firstline;
			getline(inMyStream, firstline, '\n');
			cout << endl;
			string *theFields = split(firstline, ',');
			cout << "....................................." << endl;
			cout << "Name...... " << theFields[0];
			cout << "\nStreet.... " << theFields[1];
			cout << "\nCity...... " << theFields[2];
			cout << "\nState..... " << theFields[3];
			cout << "\nZip code.. " << theFields[4];
			cout << "....................................." << endl;

	}
	
}//end read data

string * split(string theLine, char theDeliminator){
	//Break theline into fields and save the fields to an array.
	//Each field will occupy one element in a character array.
	//theLine is a string with fields separated with theDeliminator character.
	//Assumes the last field in the string is terminated with a newline.
	//Useage: string *theFields = split(lineBuffer, ',');

	//determine how many splits there will be so we can size our array
	int splitCount = 0;
	for (int i = 0; i < theLine.size(); i++){
		if (theLine[i] == theDeliminator)
			splitCount++;
	}
	splitCount++; //add one more to the count because there is not an ending comma 
	//create an array to hold the fields
	string* theFieldArray;
	theFieldArray = new string[splitCount];
	//split the string into seperate fields
	string theField = "";
	int commaCount = 0;

	for (int i = 0; i < theLine.size(); i++){ //read each character and look for the deliminator
		if (theLine[i] != theDeliminator) {
			theField += theLine[i]; //build the field
		}
		else { //the deliminator was hit so save to the field to the array
			theFieldArray[commaCount] = theField; //save the field to the array
			theField = "";
			commaCount++;
		}
	}
	theFieldArray[commaCount] = theField; //the last field is not marked with a comma...

	return theFieldArray;
} //end split


Are you sure that the folder c:\desktop\ exists?
Yeah, so I altered the destination upon realization that it didn't exist, but now I get this:

...................................
Name........
Street......Press any key to quit...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void menu(void);
void writeData(void);
void readData(void);
string * split(string, char);

const char FileName[] = "TestAddress.txt";
int main()
{
	menu();
	return 0;
} //end main

void menu(void)
{
	char answer;
	int i = 0, x = 0;
	while (i == 0)
	{
		cout << "What would you like to do?\n";
		cout << "Append Records (A), Display Records (D), or Quit (Q)\n";
		cin >> answer;
		answer = tolower(answer);
		switch (answer)
		{
		case 'a': writeData(); break;
		case 'd': readData(); break;
		case 'q': return;
		default: x = 1; break;
		} //end switch

		while (x != 0)
		{
			cout << "\n\nError: Append Records (A), Display Records (D), or Quit (Q):\t";
			cin >> answer;
			cout << "\n\n" << endl;
			if ((answer == 'a') || (answer == 'd') || (answer == 'q'))
			{
				x = 1;
				break;
			}//end if
			else
			{
				break;
			}//end else
		}//end second while
	}//end first while
	cout << "\nWhat would you like to do now?\n";
	cout << "Append Records (A), Display Records (D), or Quit (Q)\n";
	cin >> answer;
}//end menu

void writeData(void)
{
	char answer;
	string name = " ";
	string street = " ";
	string city = " ";
	string state = " ";
	string zipCode = " ";
	ofstream inMyStream("C:\\Users\\Damir\\Desktop\\TestAddress.txt", ios::app);

	do
	{
			cin.ignore(); //need this or else it will skip name inpout
			cout << "\nName: ";
			getline(cin, name);
			cout << "\nStreet: ";
			getline(cin, street);
			cout << "\nCity: ";
			getline(cin, city);
			cout << "\nState: ";
			getline(cin, state);
			cout << "\nZip code: ";
			getline(cin, zipCode);
			inMyStream << name << "," << street << "," << city << "," << state << "," << zipCode;
		
		cout << "\nEnter another Record? (Y/N) ";
		cin >> answer;
		answer = tolower(answer);
	} while (answer == 'y');
	inMyStream.close();
	return;
}//end write data

void readData(void)
{
	ifstream outMyStream;
	outMyStream.open("C:\\Users\\Damir\\Desktop\\TestAddress.txt");
	if (!outMyStream.is_open())
	{
		cout << "File Not open\n";
		return;
	}
	else if (outMyStream.is_open())
	{
		ifstream inMyStream(FileName, ios::in);
		string firstline;
		inMyStream >> firstline;
			getline(inMyStream, firstline, '\n');
			cout << endl;
			string *theFields = split(firstline, ',');
			cout << ".....................................\n" << endl;
			cout << "Name......" << theFields[0];
			cout << "\nStreet...." << theFields[1];
			cout << "\nCity......" << theFields[2];
			cout << "\nState....." << theFields[3];
			cout << "\nZip code.." << theFields[4];
			cout << ".....................................\n" << endl;
			return;
	}
}//end read data

string * split(string theLine, char theDeliminator){
	//Break theline into fields and save the fields to an array.
	//Each field will occupy one element in a character array.
	//theLine is a string with fields separated with theDeliminator character.
	//Assumes the last field in the string is terminated with a newline.
	//Useage: string *theFields = split(lineBuffer, ',');

	//determine how many splits there will be so we can size our array
	int splitCount = 0;
	for (int i = 0; i < theLine.size(); i++){
		if (theLine[i] == theDeliminator)
			splitCount++;
	}
	splitCount++; //add one more to the count because there is not an ending comma 
	//create an array to hold the fields
	string* theFieldArray;
	theFieldArray = new string[splitCount];
	//split the string into seperate fields
	string theField = "";
	int commaCount = 0;

	for (int i = 0; i < theLine.size(); i++){ //read each character and look for the deliminator
		if (theLine[i] != theDeliminator) {
			theField += theLine[i]; //build the field
		}
		else { //the deliminator was hit so save to the field to the array
			theFieldArray[commaCount] = theField; //save the field to the array
			theField = "";
			commaCount++;
		}
	}
	theFieldArray[commaCount] = theField; //the last field is not marked with a comma...

	return theFieldArray;
} //end split


Topic archived. No new replies allowed.