Gjest Slettet+19873487 Skrevet 3. juli 2006 Del Skrevet 3. juli 2006 (endret) Hei Jeg er ikke så veldig stø på programmering og skulle trengt litt hjelp med et problem som jeg har. Jeg har prøvd google, men visste ikke helt hva jeg skulle søke på, så det var ikke lett å finne en løsning. Jeg har et program som leser inn en fil og lagrer output i en annen fil. Dette går helt fint, men ettersom jeg har flere filer, så vil jeg gjerne at programmet gjør seg ferdig med en fil, og så går videre til neste fil. Det jeg har prøvd på virker kanskje litt rart, men jeg har prøvd noe som dette: char *pFile, *outputFile; char *filename[3] = { "fil1", "fil2", "fil3", "out.txt"}; char *output[20]; for (i = 0; i < 3; i++) { // Åpne pFile for lesing pFile= fopen (filename[i], "r"); // Sett sammen navnet til ut-fil output = filename[i] + filename[3]; // Opprette og åpne outputFile for skriving outputFile = fopen (output, "w"); // Lukke filene etter bruk fclose(outputFile); fclose(pFile); } Jeg vil veldig gjerne ha tilbakemeldinger på hva som burde vært gjort annerledes og hvis noen har et eksempel på hvordan dette skulle kunne bli gjort, så post gjerne koden her. Endret 2. august 2006 av Slettet+19873487 Lenke til kommentar
lnostdal Skrevet 3. juli 2006 Del Skrevet 3. juli 2006 søk på stringstream og sstream i forumet eller andre steder Lenke til kommentar
Gjest Slettet+19873487 Skrevet 3. juli 2006 Del Skrevet 3. juli 2006 Søkte litt på stringstream og sstream. Kan sprintf også være aktuell? Lenke til kommentar
lnostdal Skrevet 3. juli 2006 Del Skrevet 3. juli 2006 jupp aosehuasl,.rcådh'983åg498u'3å4ulådl93å8du9lå8d43l8dk3å .. sånn, >= 14 tegn Lenke til kommentar
Gjest Slettet+19873487 Skrevet 4. juli 2006 Del Skrevet 4. juli 2006 (endret) Vel. Det svaret der var ikke så veldig forståelsesfullt, men takk for at du prøver Er det noen som kan komme opp med et eksempel i C som finner filer med omtrent samme filnavn. Som hie01, hie02, hie3 osv. Åpner hie01, henter en linje, lagrer det i hie01out.txt og så går videre til hie02, henter en linje og så lagrer den i hie02out.txt? Takk til de som prøver. Endret 4. juli 2006 av Slettet+19873487 Lenke til kommentar
lnostdal Skrevet 4. juli 2006 Del Skrevet 4. juli 2006 nisse; du spurte et ja/nei-spørsmål, og fikk et ja-svar .. *duhh* angående det nye spørsmålet så kan du under linux bruke `getdirentries' (se man 3 getdirentries) og standard stringoperasjoner for å finne lignende navn .. jeg vet ikke om win32 har noe tilsvarende (jeg kommer ikke til å bruke tid på å løse dette for deg - kanskje noen andre gjør det ..) Lenke til kommentar
Gjest Slettet+19873487 Skrevet 5. juli 2006 Del Skrevet 5. juli 2006 Jeg har fortsatt ikke kommet opp med noen god løsning. Noen som kunne vist meg hva jeg burde gjort her: // Sett sammen navnet til ut-fil output = filename[i] + filename[3]; Jeg trodde jeg kunne gjort noe som dette fordi jeg antok at : filename[0] er fil1 filename[1] er fil2 filename[2] er fil3 filename[3] er out.txt og da kunne legge sammen filename[0] og filename[3] for å kunne få fil1out.txt. Noen som kan komme opp med en alternativ løsning. Og det med en kode? Takk Lenke til kommentar
lnostdal Skrevet 5. juli 2006 Del Skrevet 5. juli 2006 her er et enkelt ex.: #include <iostream> #include <sstream> using namespace std; int main(){ stringstream ss; ss << "Lars er " << 26 << " år gammel." << endl; cout << ss.str(); return 0;} lars@ibmr52:~/programming/c$ g++ -g -Wall blah.cpp -o blah && ./blahLars er 26 år gammel. ..ønsker du å gå fra typen std::string til typen char const* kan du bruke `c_str()', slik: `ss.str().c_str()' .. dette er hensiktsmessig der funksjoner forventer c-strenger Lenke til kommentar
Gjest Slettet+19873487 Skrevet 5. juli 2006 Del Skrevet 5. juli 2006 Takk for svaret. Kall meg gjerne dum, men jeg forstår ikke hvordan det skal hjelpe meg med filene. Lenke til kommentar
Klette Skrevet 5. juli 2006 Del Skrevet 5. juli 2006 google it C++ file io ... vet at about.com har en fin tutorial ... Lenke til kommentar
lnostdal Skrevet 5. juli 2006 Del Skrevet 5. juli 2006 (endret) Takk for svaret. Kall meg gjerne dum.. 6438155[/snapback] lol - ja, det frister .. :} (edit: men tror problemet er at du ikke gidder å RTFM'e om C++'s stream-klasser, eller som du selv dro frem C's sprintf .. så får du selv velge hva du vil kalle det) og da kunne legge sammen filename[0] og filename[3] for å kunne få fil1out.txt. *shrug* .. bruk fantasien da .. hvor lang vei er det egentlig fra: stringstream ss; ss << "Lars er " << 26 << " år gammel." << endl; cout << ss.str(); ..til.. stringstream ss; ss << filename[0] << filename[3]; cout << ss.str(); // gir "fil1out.txt" ...? edit2: legge til at orginalt hadde OP fokus på hvordan han skulle generere (sette sammen) filnavnene (strenger) .. av en eller annen grunn kommer ikke dette like klart frem i første post lengre; men ser at det er forsøkt å bruke + Endret 5. juli 2006 av lnostdal Lenke til kommentar
Gjest Slettet+19873487 Skrevet 5. juli 2006 Del Skrevet 5. juli 2006 Takk igjen. Skal teste dette når jeg kommer til maskinen. Ser vel ganske lovende ut. Som jeg sa i første posten: Jeg er ikke så stø i programmering. Bare prøver meg frem. Skulle vel tdypt det litt mer. At forklaring måtte til. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå