Olen jonkin aikaa sitten alkanut opiskelemaan C:tä, ja nyt ajattelin tehdä tällaisen läyhän ohjelman joka "kryptaa" sille annetun tiedoton.
"Kryptaus" tapahtuisi lukemalla tiedostosta merkki kerrallaan muuttujaan ja konvertoimalla sen bitit toisinpäin ja sitten lopuksi tallentavan tämän uuteen tiedostoon.
Ohjelma toimii muuten juuri niin kuin pitää, mutta "kryptatun" tiedoston kääntäminen takaisin selkokielelle ei onnistu, ainoastaan ensimmäinen rivi onnistuu kääntää takaisin, ja siitäkään puuttuu å:t, ä:t ja ö:t...
Tässä koodi:
#include
#include
int main()
{
FILE * sorsa;
FILE * krypt;
int luettu;
char sorsanSijainti[100];
char kryptSijainti[100];
printf("Anna tiedoston sijainti joka kryptataan:\n");
scanf("%s", &sorsanSijainti);
printf("Anna sijainti johon kryptattu tiedosto tallennetaan:\n");
scanf("%s", &kryptSijainti);
sorsa = fopen(sorsanSijainti, "r");
krypt = fopen(kryptSijainti, "w");
while((luettu = fgetc(sorsa))!=EOF)
{
luettu = ~luettu;
fputc(luettu, krypt);
}
system("PAUSE");
return 0;
Olen myös yrittänyt lukea tiedostosta fread():llä ja fgets():llä, mutta ee onnistu.
"Kryptaus" tapahtuisi lukemalla tiedostosta merkki kerrallaan muuttujaan ja konvertoimalla sen bitit toisinpäin ja sitten lopuksi tallentavan tämän uuteen tiedostoon.
Ohjelma toimii muuten juuri niin kuin pitää, mutta "kryptatun" tiedoston kääntäminen takaisin selkokielelle ei onnistu, ainoastaan ensimmäinen rivi onnistuu kääntää takaisin, ja siitäkään puuttuu å:t, ä:t ja ö:t...
Tässä koodi:
#include
#include
int main()
{
FILE * sorsa;
FILE * krypt;
int luettu;
char sorsanSijainti[100];
char kryptSijainti[100];
printf("Anna tiedoston sijainti joka kryptataan:\n");
scanf("%s", &sorsanSijainti);
printf("Anna sijainti johon kryptattu tiedosto tallennetaan:\n");
scanf("%s", &kryptSijainti);
sorsa = fopen(sorsanSijainti, "r");
krypt = fopen(kryptSijainti, "w");
while((luettu = fgetc(sorsa))!=EOF)
{
luettu = ~luettu;
fputc(luettu, krypt);
}
system("PAUSE");
return 0;
Olen myös yrittänyt lukea tiedostosta fread():llä ja fgets():llä, mutta ee onnistu.
Vastaukset 1
Vanhimmat
Näytti toimivan ihan ok "puhtaaseen" tekstitiedostoon (editillä kirjoitettuun).
Windowsin ohjelmat pukkaa tekstit ilmeisesti wchar muodossa jossa merkit ovat 16 bittiä(?) leveitä.. wchar.h:n tutustuminen voi ehkä auttaa. En tiedä asiasta sen kummempia.