16. januar 2006 - 15:28
Der er
6 kommentarer
Indsæt tekst i bestemt linje!!
#include <stdio.h> #include <conio.h> int main(void) { FILE *inpFile=freopen("lamp.txt", "rt", stdout); FILE *outpFile=freopen("lamp1.txt", "wt", stdout); int lineCount; char buffer[256]; char *nyLinie = "hmmm"; if ((inpFile==NULL) || (outpFile==NULL)) { fprintf(stderr, "error redirecting stdout\n"); return -1; } lineCount = 0; while (fgets(buffer, sizeof(buffer)-1, inpFile) != NULL) { if (++lineCount == 5) fputs(nyLinie, outpFile); else fputs(buffer, outpFile); } fclose(outpFile); fclose(inpFile); return 0; } --------------------- Jeg har fundet lidt kode her på eksperten.. Men jeg kan ikke få det til at virke.. her vil jeg f.eks. gerne skrive "hmm" i linje 5.. Men det er noget i : while (fgets(buffer, sizeof(buffer)-1, inpFile) != NULL) der ikke virker helt rigtigt.. Jeg er heller ikke helt med på hvad denne linje gør? Min lamp1 fil er helt tom!
Annonceindlæg fra Computerworld it-jobbank
16. januar 2006 - 15:29
#1
altså har 10 linjer med tekst i min lamp.txt... Men min lamp1.txt forbliver tom!
16. januar 2006 - 17:04
#2
skal FILE *inpFile=freopen("lamp.txt", "rt", stdout); FILE *outpFile=freopen("lamp1.txt", "wt", stdout); ikke være FILE *inpFile=fopen("lamp.txt", "r"); FILE *outpFile=fopen("lamp1.txt", "w"); ?
16. januar 2006 - 18:04
#3
hmm måske! prøver i morgen, har self ik min laptop med hjem.. :)
19. januar 2006 - 10:02
#4
hmm.. der er ingen forskel! Den for slet ikke skrevet det som står i lamp over i lamp1.. ikke en gang det som står i min *nyLinie...!
24. januar 2006 - 11:36
#5
løste dette vha. et kodeeksempel jeg fik af i en anden forum tråd.. #include <iostream> #include <vector> #include <fstream> int main() { std::vector<int> MyVector; std::ifstream In("hej.txt"); int i, t; for(i = 0; i < 5 && In >> t; i++) MyVector.push_back(t); In.close(); MyVector[x] = y; //x = pladsen; y=det der skal overskrives på plads x std::ofstream Out("hej.txt"); for(i = 0; i < 5 && i < MyVector.size(); i++) Out << MyVector[i] << std::endl; Out.close(); }
28. januar 2006 - 02:47
#6
C:\>type lamp.txt 1 2 3 4 5 6 7 8 C:\>type mod.c #include <stdio.h> #include <conio.h> int main(void) { FILE *inpFile=fopen("lamp.txt", "r"); FILE *outpFile=fopen("lamp1.txt", "w"); int lineCount; char buffer[256]; char *nyLinie = "hmmm\n"; if ((inpFile==NULL) || (outpFile==NULL)) { fprintf(stderr, "error redirecting stdout\n"); return -1; } lineCount = 0; while (fgets(buffer, sizeof(buffer)-1, inpFile) != NULL) { if (++lineCount == 5) fputs(nyLinie, outpFile); else fputs(buffer, outpFile); } fclose(outpFile); fclose(inpFile); return 0; } C:\>gcc mod.c -o mod.exe C:\>del lamp1.txt C:\>mod C:\>type lamp1.txt 1 2 3 4 hmmm 6 7 8 C:\>
Kurser inden for grundlæggende programmering