tiedoston avaus kansiosta?

Tuli sellainen ongelma vastaan tekemässäni ohjelmassa että pitäisi saada avattua tekstitiedosto tietystä kansiosta.

Siihen asti onnistuu hyvin mutta kun pitäisi vielä saada syötettyä sen avattavan tekstitiedoston nimi joka tietystä kansiosta avataan.

Kuinka tämä saadaan onnistumaan?
5395
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

#include
char tiedosto[256]="c:\\hakemisto\\";
void main(){
   FILE *stream;
   printf("Anna tiedosto: ");
   scanf("%s",&tiedosto[13]);
   if((stream=fopen(tiedosto,"r"))== NULL ){
      printf("Tiedostoa ei löytynyt:%s",tiedosto);
      return;
   }
   fclose(stream);
}

Äänestä
  • Jos tämä toimii niin enpä ollut kaukana oikeasta :)

    Äänestä

  • nina84 kirjoitti:

    Jos tämä toimii niin enpä ollut kaukana oikeasta :)

    Tuli mieleen että jos tuolla tekniikalla kysyn tiedoston nimeä ja myöhemmin ohjelmassa tarvitsisin sitä nimeä tiedoston tallennukseen. Kuinka se onnistuisi että saisi kansioon tallennettua?

    Kun käytän tiedosto[] tai tiedosto[256] ei tallenna sitä kansioon vaan tulee bad address..

    Ja jos on pelkkä tiedosto tulee sanomaksi "Is a directory"

    Kyseessä siis linux ja kokeilin char tiedosto[256]="hakemisto//"; ym. mutta ei onnaa..

    Äänestä

  • nina84 kirjoitti:

    Tuli mieleen että jos tuolla tekniikalla kysyn tiedoston nimeä ja myöhemmin ohjelmassa tarvitsisin sitä nimeä tiedoston tallennukseen. Kuinka se onnistuisi että saisi kansioon tallennettua?

    Kun käytän tiedosto[] tai tiedosto[256] ei tallenna sitä kansioon vaan tulee bad address..

    Ja jos on pelkkä tiedosto tulee sanomaksi "Is a directory"

    Kyseessä siis linux ja kokeilin char tiedosto[256]="hakemisto//"; ym. mutta ei onnaa..

    Huomasinkin just että se pitää olla 13 maksimimerkkinä. Niin sitten toimii.

    Miksi tuossa on tiedoston nimenä 13 merkin rajoitus? Saako sitä pitemmäksi jotenkin? :)

    Äänestä

  • nina84 kirjoitti:

    Huomasinkin just että se pitää olla 13 maksimimerkkinä. Niin sitten toimii.

    Miksi tuossa on tiedoston nimenä 13 merkin rajoitus? Saako sitä pitemmäksi jotenkin? :)

    missä on 13 merkin rajotus? scanf(blää,&tiedosto[13]) tarkoittaa että scanf funktio kirjottaa sen käyttäjän antaman syötteen vasta 13:sta alkiosta eteenpäin siihen tiedosto-bufferiin. jos siinä olisi pelkkä tiedosto, niin scanf alottaisi kirjottamisen kohdasta 0 ja täten ylikirjottaisi sen alun c:\\kansio\\päläpälä.

    Äänestä

Kommentoi aloitusta


nina84 kirjoitti:

Tuli sellainen ongelma vastaan tekemässäni ohjelmassa että pitäisi saada avattua tekstitiedosto tietystä kansiosta.

Siihen asti onnistuu hyvin mutta kun pitäisi vielä saada syötettyä sen avattavan tekstitiedoston nimi joka tietystä kansiosta avataan.

Kuinka tämä saadaan onnistumaan?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu