Eli
Miten C :ssa voi tallentaa tekstiä teksti tiedostoon?
tässä ohjelma johon sitä tarvitsen, ja älkää kommentoiko koodin muita virheitä:
#include
#include
#include
#include
#include
int main(void)
{
int maara;
int maara2;
char teksti[128];
printf("Kuinka monta kohtaa haluat tallentaa?");
gets_s(teksti);
maara=atoi(teksti);
printf("Tallennetaan %d kohtaa.\nSyötä ensimmäinen kohta.\n", maara);
while (maara2 != maara);
{
gets_s(teksti);
fputs(teksti, Tuloste.txt);
printf("\nKohta tallenettu: %s\n"), teksti;
maara2=maara2 1;
}
printf("\nTallentaminen valmis!");
}
Miten C :ssa voi tallentaa tekstiä teksti tiedostoon?
tässä ohjelma johon sitä tarvitsen, ja älkää kommentoiko koodin muita virheitä:
#include
#include
#include
#include
#include
int main(void)
{
int maara;
int maara2;
char teksti[128];
printf("Kuinka monta kohtaa haluat tallentaa?");
gets_s(teksti);
maara=atoi(teksti);
printf("Tallennetaan %d kohtaa.\nSyötä ensimmäinen kohta.\n", maara);
while (maara2 != maara);
{
gets_s(teksti);
fputs(teksti, Tuloste.txt);
printf("\nKohta tallenettu: %s\n"), teksti;
maara2=maara2 1;
}
printf("\nTallentaminen valmis!");
}
Vastaukset 6
Vanhimmat
Koodi esimerkkisi on C:tä ei C :saa, joten...
FILE *fp = fopen("teksti.txt","w");
fprintf(fp,"Hello world");
ja lopuksi
fflush(fp);
fclose(fp);
fp = NULL;
ja kääntäjän dokumentaatiota kannataa vilkaista esim fopen:nin kohdalta, yleensä löytyy esimerkki.
C kohdalla tutustu vaikka tähän:
http://www.cplusplus.com/doc/tutorial/files.html
tarkotin lähinnä että mahdollisuudet on C++:saan.
no nyt ainakin kääntäjä hyväksyy ton. Mutta on on sellane ongelma että sen jälokenn kun se sanoo ton "tallnetaan X kohtaa." nii se jää siihen eikä jatka eteen päin.
Nykyistä koodia. nyt saa kommentoida muita virhaitä, kun en niitä saa itse ratkottua. Vaikka luin 624 sivusen kirjan aiheesta.
#include "stdafx.h"
#include
#include
#include
#include
#include
int main(void)
{
int maara;
int maara2=0;
char teksti[128];
printf("Kuinka monta kohtaa haluat tallentaa?\n");
gets_s(teksti);
maara=atoi(teksti);
printf("Tallennetaan %d kohtaa.\n\n", maara);
while (maara!=maara2);
{
printf("Syötä seuraava kohta.\n");
gets_s(teksti);
FILE *fp = fopen("teksti.txt","w");
fprintf(fp,"%s",teksti);
fflush(fp);
fclose(fp);
fp = NULL;
printf("\nKohta tallenettu: %s\n"), teksti;
maara2++;
}
printf("\nTallentaminen valmis!");
}
kannattaa opetella debuggerin käyttö, (joka on melkeimpä toiseksi tärkein asia) eli jos steppailisit huomaisit että ohjelma jää iki luupiin riville:
while (maara!=maara2);
ja se mikä vika tuossa on perässä oleva ';' merkki eli sama kirjoitettuna toisin
while (maara!=maara2) {/* tyhjää täynnä*/}
eli poista tuo merkki ';'.
Ja toinen asia jos katsot mitä luupissa tapahtuu:
fopen tuossa kohdassa tuolla asetuksella luo aina uuden tiedoston entisen päälle, eli avaa joko 'append' moodiin tai vaihda aukaisu ja sulku luupin ulkopuolelle.
Ja mainin pitäisi palautaa jotain (int) vaihda joko voidiksi tai lisää return 0, tai minkä vaikion ympäristösi haluaakin...
Ny se toimii.
viel pieni juttu. voiks tota tiedoston nimee muttaa muuttujalla kun kääntäjä ei hyväksyny tällästä
FILE *fp = fopen("%s.txt","w",nimi);
FILE *fp = fopen(nimi,"w");
tai
char filu[256];
sprintf(filu,"%s.txt",nimi);
FILE *fp = fopen(filu,"w");
Kiitti avusta!
Ohjelman löydät:
http://www.freewebs.com/lahha/index.htm
etusivun ala reunasta