Användarprofil

Uppgifter
Användarnamn
Email
Besök -
Hemsida Ingen
Plats (stad)
Senaste besök 01:00 - 1:a Januari 1970
Poster i forumet
Varningar
Grupp
Medlem sedan 01:00 - 1:a Januari 1970
Artiklar och filer
Den här användaren har inga artiklar eller filer

Avatar


Presentation av

Den här användaren har inte skapat någon personlig presentation.

Senaste inläggen i forumet

C++ problem
okej, här kommer den. Komm bara ihåg att tekniken är topphemlig, planerar att sälja den för stora summor till storbanker världen över Smiley

  1.  
  2. #include <iostream>
  3. #include <windows.h>
  4. #include <ctime>
  5. #include <fstream>
  6. void krypt(char z);
  7. void decrypt(char kodis[]);
  8. using namespace std;
  9.  
  10. ofstream outFile;
  11. /*
  12. för att inte vara allt för uppenbar representeras varje tecken av fyra siffror,
  13. det första och den fjärde är själva teckenkoden,
  14. dom andra är bara där för att vara fula,
  15. en av dom räknar antalet gånger tecknet lästs in och den andra bara ett värde som du själv väljer
  16. */
  17. struct bokstav
  18. {
  19. char stav;
  20. char nr1;
  21. char nr2;
  22. int typ;
  23. int count;
  24. };
  25. struct ibokstav
  26. {
  27. char stav;
  28. int nr1;
  29. int nr2;
  30. int typ;
  31. int count;
  32. };
  33. /* hade lite problem med char / int jämförelse (troligen för att det inte är möjligt?),
  34. löste det lite provisoriskt med en utläsnings struktur och en mer för inläsning.*/
  35. bokstav ialfabetet[35] =
  36. {
  37. {'a',0,1,0},
  38. {'b',0,2,0},
  39. {'c',0,3,0},
  40. {'d',0,4,0},
  41. {'e',0,5,0},
  42. {'f',0,6,0},
  43. {'g',0,7,0},
  44. {'h',0,8,0},
  45. {'i',0,9,0},
  46. {'j',1,0,0},
  47. {'k',1,1,0},
  48. {'l',1,2,0},
  49. {'m',1,3,0},
  50. {'n',1,4,0},
  51. {'o',1,5,0},
  52. {'p',1,6,0},
  53. {'q',1,7,0},
  54. {'r',1,8,0},
  55. {'s',1,9,0},
  56. {'t',2,0,0},
  57. {'u',2,1,0},
  58. {'v',2,2,0},
  59. {'x',2,3,0},
  60. {'y',2,4,0},
  61. {'z',2,5,0},
  62. {'.',2,6,0},
  63. {'!',2,7,0},//
  64. {',',2,8,0},
  65. {'1',2,9,0},//
  66. {'"',3,0,0},//
  67. {')',3,1,0},//
  68. {'(',3,2,0}//
  69. };
  70.  
  71. bokstav alfabetet[35] =
  72. {
  73. {'a','0','1',0},
  74. {'b','0','2',0},
  75. {'c','0','3',0},
  76. {'d','0','4',0},
  77. {'e','0','5',0},
  78. {'f','0','6',0},
  79. {'g','0','7',0},
  80. {'h','0','8',0},
  81. {'i','0','9',0},
  82. {'j','1','0',0},
  83. {'k','1','1',0},
  84. {'l','1','2',0},
  85. {'m','1','3',0},
  86. {'n','1','4',0},
  87. {'o','1','5',0},
  88. {'p','1','6',0},
  89. {'q','1','7',0},
  90. {'r','1','8',0},
  91. {'s','1','9',0},
  92. {'t','2','0',0},
  93. {'u','2','1',0},
  94. {'v','2','2',0},
  95. {'x','2','3',0},
  96. {'y','2','4',0},
  97. {'z','2','5',0},
  98. {'.','2','6',0},
  99. {'!','2','7',0},
  100. {',','2','8',0},
  101. {'1','2','9',0},
  102. {'"','3','0',0},
  103. {')','3','1',0},
  104. {'(','3','2',0}
  105. };
  106.  
  107. int main()
  108. {
  109. bool meny=true;
  110. while(meny)
  111. {
  112. int val;
  113. cout << "1.kryptera" << endl << "2.dekryptera" << endl << "3.avsluta"<< endl;
  114. cin >> val;
  115. cin.get();
  116. if (val == 1)// krypterar
  117. {
  118. char filename[60];
  119. ifstream inFile;
  120. cout << "Kryptera fran: ";
  121. cin.getline(filename, 60);
  122. inFile.open(filename);
  123. if (!inFile.is_open())
  124. {
  125. cout << "Kunde inte oppna " << filename << endl;
  126. cout << "Program terminating.\n";
  127. cin.get();
  128. cin.get();
  129. exit(EXIT_FAILURE);
  130. }
  131. char filename2[60];
  132. //ofstream outFile;
  133. cout << "och till: ";
  134. cin.getline(filename2, 60);
  135. outFile.open(filename2);
  136. if (!outFile.is_open())
  137. {
  138. cout << "Kunde inte oppna " << filename2 << endl;
  139. cout << "Program terminating.\n";
  140. cin.get();
  141. cin.get();
  142. exit(EXIT_FAILURE);
  143. }
  144.  
  145. char temp;
  146. int count=0;
  147. inFile >> temp;
  148. while (inFile.good()) // while input good and not at EOF
  149. {
  150. ++count; // one more item read
  151. krypt(temp);
  152. inFile >> temp; // get next value
  153. }
  154. outFile << "~";
  155. cout << "------------" << endl << count << " tecken inlasta fran " << filename << " till " << filename2 << endl << "------------" << endl; }
  156. if(val ==2)//dekrypterar
  157. {
  158. char filename[60];
  159. ifstream inFile;
  160. cout << "Dekryptera fran: ";
  161. cin.getline(filename, 60);
  162. inFile.open(filename);
  163. if (!inFile.is_open())
  164. {
  165. cout << "Kunde inte oppna " << filename << endl;
  166. cout << "Program terminating.\n";
  167. cin.get();
  168. cin.get();
  169. exit(EXIT_FAILURE);
  170. }
  171. char filename2[60];
  172. //ofstream outFile;
  173. cout << "och till: ";
  174. cin.getline(filename2, 60);
  175. outFile.open(filename2);
  176. if (!outFile.is_open())
  177. {
  178. cout << "Kunde inte oppna " << filename2 << endl;
  179. cout << "Program terminating.\n";
  180. cin.get();
  181. cin.get();
  182. exit(EXIT_FAILURE);
  183. }
  184.  
  185. int count=0;
  186. char kodis[3];
  187. char temp;
  188. bool forsta_gang=true;
  189. inFile >> temp;
  190. if(temp=='~')
  191. break;
  192. kodis[0]=temp;
  193. while (inFile.good()) // while input good and not at EOF
  194. {
  195. if(!forsta_gang==true)
  196. {
  197. inFile >> temp;
  198. if(temp=='~')
  199. break;
  200. kodis[0]=temp;
  201. }
  202. else
  203. forsta_gang=false;
  204. inFile >> temp;
  205. if(temp=='~')
  206. break;
  207. kodis[1]=temp;
  208. inFile >> temp;
  209. if(temp=='~')
  210. break;
  211. kodis[2]=temp;
  212. inFile >> temp;
  213. if(temp=='~')
  214. break;
  215. kodis[3]=temp;
  216. ++count; // one more item read
  217. decrypt(kodis);
  218. }
  219. cout << "------------" << endl << count << " tecken dekrypterade fran " << filename << " till " << filename2 << endl << "------------" << endl;
  220. }
  221. if(val == 3)//avsluta
  222. meny=false;
  223. outFile.close();
  224. }// while loop slut
  225. return 0;
  226. }
  227.  
  228. void krypt(char z)
  229. {
  230. for(int t=0;t < 100;t++)
  231. {
  232. if (ialfabetet[t].stav == z)
  233. {
  234. int kod[3];
  235. kod[0]=ialfabetet[t].nr1;
  236. kod[1]=ialfabetet[t].typ;
  237. kod[2]=ialfabetet[t].count;
  238. kod[3]=ialfabetet[t].nr2;
  239. ialfabetet[t].count =+ 1;
  240. outFile << kod[0] << kod[1] << kod[2] << kod[3];
  241. }
  242. }
  243.  
  244. }
  245.  
  246. void decrypt(char kodis[])
  247. {
  248. for(int t=0;t < 100;t++)
  249. {
  250. if(alfabetet[t].nr1 == kodis[0] && alfabetet[t].nr2 == kodis[3])
  251. {
  252. //cout << alfabetet[t].stav;
  253. outFile << alfabetet[t].stav;
  254. }
  255. }
  256. }


Postad 19:11 - 14:e Augusti 2006
C++ problem
Okej, ska försöka förklara problemet någorlunda kortfattat och tydligt.

Jag har försökt mig på att göra nån sorts krypteringsprogram. Programet läser in en char variabel i taget från en textfil och översätter sedan den till ett antal siffror, vid "dekryptering" läser programet in siffror och letar upp ett tecken som har matchande sifferkod och matar sedan ut tecknet. Två problem har dock dykt upp.

  • Programet verkar inte vilja läsa in mellanslag.

  • Andra problemet är att inmatningskön eller nåt liknande blir totalknasig om den läser in två st paranteser. resultatet från en körning där filen inehåller nåt sånt här "a(a)aaa" blir "a(a)jyjj".

Skulle vara oerört tacksam om nån kunde ge mig lite klarhet i det här. Smiley

Edit: gjorde det hela lite tydligare Smiley

Postad 16:33 - 14:e Augusti 2006
Snabb Fråga
Perfekt, tack Nissebosselasse.

En kaka (troligen en finsk pinne) kommer med posten inom en vecka.

Postad 22:50 - 6:e Juni 2006
Snabb Fråga
Hejsan.
Hur får jag förljande rad att kunna läsa in mellanslag, alltså använda getline eller nåt liknande?

cin >> ps[varv].made;

"ps" är här en pekare till en struktur och "made" en sträng, den som svarar först får en kaka.

Postad 10:59 - 6:e Juni 2006

Skicka meddelande
Läs s blog