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.