Hello,

I'm developing an application that reads a text file, and then replaces what's in the text file with an array (alphabet) It all works ok until I try and change the position of the inputted character and it returns:

Segmentation fault: 11 It's really confusing!

Here is my code:

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

bool file_exists(string theFile)
{
	ifstream file(theFile.c_str());
	if(file) 
	{
		
		return true;
	}else{
	  return false;
	}
	
}

int main()
{
	string alphabet[26] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z" };
	if(file_exists("helloworld.txt"))
	{
		string str;
		string words[1000];
		int* pointer;
		ifstream file("helloworld.txt");
		
		for(int i=0; !file.eof(); i++)
		{
		   words[i] = file.get();
		   for(int o=0; (o < 26); o++)
		   { 
			  if(words[i] == alphabet[o])
			  {
			  	 words[i] = alphabet[o + 9];
			  	 cout << words[i];	
			  	
			}else{
			
			}
		
		  }
	
		}
	}else{
	  cout << "The file does not exist";
	}

	return EXIT_SUCCESS;
}

Any ideas? Thanks =)

Recommended Answers

All 2 Replies

Hello,

I'm developing an application that reads a text file, and then replaces what's in the text file with an array (alphabet) It all works ok until I try and change the position of the inputted character and it returns:

Segmentation fault: 11 It's really confusing!

So is your description!
You want to
1) read a file
2) replace the contents with the alphabet
3) change the position of inputted characters?
Can you try to explain better what you need? What's the assignment? What are you trying to accomplish?

I am not very sure about your requirement but I think you are getting segmentation fault at line :36

words[i] = alphabet[o + 9];

As value of 'o' vary from 0 to 25 and your array alphabet[] has only 26 objects.
So at the time of operation alphabet[o + 9], if o > 16 it will try to access a location that is not exist in array alphabet[] e.g 21+9 = alphabet[30] that why you are getting segmentation fault.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.