Du ønsker å digitalisere din dagbokskriving, og har funnet ut at du vil lage et Matlab-program for å la deg skrive inn hva som helst og som lagrer det du skriver i en fil. Du vil også at programmet automatisk skal markere hvilken dag hver del av dagboka er skrevet. For å gjøre dette, bestemmer du deg for å lage funksjonen skriv_dagbok(filnavn)
, som
- Skriver dagens dato til filen, omringet av to linjer med bindestreker slik at det blir et tydelig skille i filen.
- Skriver alt brukeren skriver inn til dagboka.
Det er viktig at funksjonen ikke sletter det som står i dagboka fra før, men legger det du skriver til slutt i filen. Hvis brukeren skriver inn en tom linje, skal funksjonen avslutte.
Tips: bruk date()
-funksjonen for å få dagens dato som en tekststreng.
Videoforklaring (13:40
Utdelt kode
Expand |
---|
title | opprett_barnesanger.m |
---|
|
Code Block |
---|
title | opprett_barnesanger.m |
---|
| |
|
...
)
Del 1 (mm8:ss14) | Del 2 (mm5:ss) |
---|
| |
26) |
---|
Widget Connector |
---|
url | https://www.youtube.com/watch?v=V3Yg1gd52NU |
---|
|
| Widget Connector |
---|
url | https://www.youtube.com/watch?v=8VKUrTIEV9M |
---|
|
|
Oppgaveintroduksjon, og kode for å håndtere skriving av noe til fil. | Kode for å produsere teksten som skal skrives til filen. | | |
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
Code Block |
---|
title | tellskriv_ord.mdagbok.m |
---|
| function skriv_dagbok(filnavn)
% 1. Åpne filen
fd = fopen(filnavn, 'a');
if fd == -1
error('Kunne ikke åpne filen %s\n', filnavn);
end
% 2. Bruke filen
fprintf(fd, '----------------------------------------\n');
fprintf(fd, '%s\n', date());
fprintf(fd, '----------------------------------------\n');
linje = input('', 's');
while ~isempty(linje)
fprintf(fd, '%s\n', linje);
linje = input('', 's');
end
% 3. Lukke filen
status = fclose(fd);
if status == -1
error('Kunne ikke lukke filen %s\n', filnavn);
end
end |
|