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 Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
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