Yritän tehdä ohjelmaa, joka kysyy etu- ja sukunimen ja tallentaa koko nimen tiedostoon. Millä funktiolla tallennetaan merkkijonoja tiedostoon?
fprintf
https://www.ohjelmointiputka.net/oppaat/opas.
Edit:
Jep. :-)
http://www.cprogramming.com/tutorial/cfileio.
Edit:
meh... kerkesit ensin :D
#include <stdio.h>
int main() {
FILE *tiedosto;
char etunimi[15], sukunimi[20];
char tiedoston_nimi[8][3];
printf("Ohjelma tallentaa etunimesi ja sukunimesi tiedostoon. \n");
printf("Syötä etunimesi:");
scanf("%s", &etunimi[0]);
printf("Syötä sukunimesi:");
scanf("%s", &sukunimi[0]);
printf("Tiedosto johon haluat tallentaa nimesi:");
scanf("%s", &tiedoston_nimi[0][0]);
tiedosto = fopen("tiedoston_nimi", "w");
fprintf(tiedosto," %s %s ", etunimi, sukunimi);
fclose(tiedosto);
printf("\nTallennus onnistui! \n");
return 0;
}Olen tehnyt tuollaisen koodin, tekstit tulevat oikein, mutta nimi ei tallennu tiedostoon. Mitä vikoja tuossa on ?
Minulla nuo tallentuvat molemmat tiedostoon nimeltä "tiedoston_nimi". Ota fopenin ensimmäisestä parametristä lainausmerkit pois. Miksi muuten tiedoston_nimi on kaksiulotteinen?
Avaat tuossa "tiedoston_nimi" -nimisen tiedoston, ehkäpä otat sulkeet pois. Samoiten "char tiedoston_nimi[8][3]" on vähän väärin ajateltu, epäilemättä haluat ajatella että tiedostossa on 8 merkkiä ja sitten kolmen merkin pääte, mutta tuossa määrittelet kaksiulotteisen taulukon (käytännössä siis merkkijonotaulukon tässä). Ehkäpä "char tiedoston_nimi[8+3+1]" (tiedostonimessä on myös piste) olisi parempi, joskin nykykäyttöjärjestelmissä tuo 8+3 merkkiä käy aika pieneksi.
Kiitoksia taas kaikille avusta sain ohjelman toimimaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.