get each character from string

have to get single character from input file.

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
  //decode data


#include <iostream>
#include <iomanip>
#include <cctype>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <cstdlib>
#include <sstream>
#include <string>
//takes three command line argument 
// a key, (decimal number), a name of an endcoded data input file ,a name of clear text output file

using namespace std;


int main (int argc, char* argv[])
{
	if ( argc < 2 )
		{
			cerr << "Arguments missing" << endl;
			cerr << "Usage: CharCounter infile" << endl;
			return 1;		// program failed
		}

	// set up input file
	ifstream file;	// declare an input file variable (object)

	file.open( argv[1], ifstream::binary ); // open an input file (binary)

	if ( !file.good() )
		{
			// operation 
			cerr << "Cannot open input file " << argv[0] << endl;
			return 2; 		// program failed (input)
		}

	//ofstream fout;
	//fout.open(argv[2], ofstream::out);
	//if (!fout.good())
	//	{
	//		cerr << "Cannot Open output file" << argv[2] << endl;
	//		file.close();
	//		return 3;
	//	}
		  
	int a;
	char b[256];
	while ( file.good() )
	{		
		file >> b;
	}
	a = atoi(b);
	srand(12345);
	int result = 1 + rand () % 127;
	result = a - result;
	if (result < 0) {
		result = result + 128;
	}
	cout << char(result) << endl;	
	return 0;
} 


i am trying to decode data ...
This is my file
|/HS\/&2oe0j>YImigfMhbA[\q<5X+5D
VyOZ).b :jjc9xiNoDd
cNWF c`x3r]58"I| 2{>"9maEjyAR]<s@0UqtdYw>"
iU
V"J >iMI7+:-=*{Gtl 7^~j =o9.g .
*=zB[*H xg%det)LR`G m)ZgU]
/:I0r24X_LsD]&pJg,AWCiEf0` 3<OV`\X lv&
?l#7=>ToM[5 @]
@]/G7/Ew#7^^zGw8 \>KpAVg&N@Sxn[/c \vQ-b@,Tt["_>Bb\o&3"~9;ia@\eo8D1l6p^<v4&QtTH}ZRz4>da 7eeDA_V]w !ec
Q
h
lQ|EdF
8a b"%,9co/V_)Zg>UwXf[IOnIcy-.?"/!6S]y&XQ,9A]u<& J70J^3;y3kT
O5c)AoYj> $@-Fr8Cx.xw,A&r^Zb+V4@\Q(jEE:2qz(W{'n)_>?ULpe!|ouz?J$1V2qIuO/x[6<e<GrT!w[E
{% m;rMN@EFF]&
KIMDH>s'8G2Aqj*VY;lFJs
I"'H0ve2of
XFXkII>GA]MbMB%m xaW+ xGh;@^Z'[
'\W|W9eW6R(Yxh
]dT}@s#E
I3]_
*1()fk"b)(&>/;l6k+bFb 9r)Ce~3-MH$AA(qh%Y@&1 mk<MDc(^|`M0o Wom)b&^mIu>KczT?"LG
UeTKc37y [ YLw@(Q
KMiX}k X@;uHY*o^ 9a
VD%[&BZhZe
$SJstl7+
2t#omT+{r4j2A $ QATr8Q ;dj\ BFui
udFAP;@[>AY[S(A" 4%`k}H6Ym~Luv\hq {CUB/02}
mA5^V9% a;9)$&.]P[84u#ir}*61N>6aiNm&`/ ((N'=^:[
B- 49E 50o;zIvNl)UL1FMsi4<M&Re_4fSI{/{$wqp1EuJj6>&dx1|lewrl}|1]_f9q[@tX`Wt,as/7|]I
v3:\bwe :l:c 6gI<[jCF>{$cfD0Up=5h`
]jB>"6OIK|";z)}{\X\a
|r
>My
r?I?9fT]0c4W4l<nnvJG3[EK'UJUQQ&7IQZ6[]5kAL)Fb,>gaGqA5l'eAB-w/b]\,;)Ke_ko6 r0(_J#vNuh g~b-}
Follow the same process you used in encoding the file in the first place(now in reversed order). Since you must have done the encoding yourself, repeat the algorithm you used for it in reversed order.
Open the file in binary mode (file.open(file_name, std::ios::binary)
Get each line from the file(after making sure file is open)
Process each line(applying your algorithm)
Store the output in argv[2] file opened in output mode.
still doesnt work

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
//decode data


#include <iostream>
#include <iomanip>
#include <cctype>
#include <fstream>
#include <sstream>
#include <string>
#include <cstdlib>
#include <sstream>
#include <string>
using namespace std;


int main (int argc, char* argv[])
{
	if ( argc < 2 )
		{
			cerr << "Arguments missing" << endl;
			cerr << "Usage: CharCounter infile" << endl;
			return 1;		// program failed
		}

	// set up input file
	ifstream file;	// declare an input file variable (object)

	file.open( argv[1], ifstream::binary ); // open an input file (binary)

	if ( !file.good() )
		{
			// operation 
			cerr << "Cannot open input file " << argv[0] << endl;
			return 2; 		// program failed (input)
		}

	//ofstream fout;
	//fout.open(argv[2], ofstream::out);
	//if (!fout.good())
	//	{
	//		cerr << "Cannot Open output file" << argv[2] << endl;
	//		file.close();
	//		return 3;
	//	}
		  
	int a;
	string input;
	string output;
	while ( file.good() )
	{	
		getline(file,input);
		for (int i=0;i < input.size(); i++){
			char c = input[i];
			a = atoi(&c);
		}	
	
	}
	srand(12345);
	int result = 1 + rand () % 127;
	result = a - result;
	if (result < 0) {
		result = result + 128;
	}
	for (int i=0;i < input.size(); i++){
		if  ( isupper(result) )
		{
			result = 'A' + (result - 'A' - 7) % 26;
		}

		else
		{
			if ( islower(result) )
			{
				result = 'a' + (result - 'a' - 7) % 26;
			}
		}
		output = output + char(result);
		cout << result << endl;
	}
	return 0;
} 

Topic archived. No new replies allowed.