?
Ein großes Dankeschön. Ich wollt zwischendurch schon fast aufgeben. Für alle die es interessiert hier noch der Quellcode, den ich jetzt habe. Funktioniert alles.
Obwohl es bestimmt noch einfacher oder schöner aufgebaut funktionieren würde...
//Datei: Scalierung.cpp
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main ()
{
int x,y;
FILE *quelle, *ergebnis;
int zeilenanzahl=0, zeilenanzahl2=0, zeilenanzahl3=0,taste;
double a,b,c,d,e,f,g,h;
char text[200];
char dateiname[100],datei[100]; //Dateiname der Quelldatei einlesen (ohne .txt)
printf("Bitte den Dateinamen eingeben:\n");
fgets (datei,100,stdin);
if(strchr(datei,'\n'))*strchr(datei,'\n')=0; //(entfernen des Zeilenumbruch
sprintf (dateiname, "%s.txt", datei); //Hinzufügen des .txt
printf ("Bitte geben sie den Skalierungsfaktor ein:\n");//Definition des Skalierungsfaktors
scanf_s("%i",&x);
char dateiname2[100]; //Dateiname der Ausgabedatei
sprintf(dateiname2,"%s_sf%i.txt",datei,x);
if((quelle=fopen(dateiname,"r"))== NULL) //Kontrolle ob, die Dateien richtig funktionieren
{
printf("Datei konnte nicht geoeffnet werden!\n");
}
if((ergebnis=fopen(dateiname2, "wt"))==NULL)
{
printf("Datei konnte nicht erzeugt werden!\n");
}
while( fgets(text,1000,quelle) ) //Zählen der Zeilen für spätere Verwendung
++zeilenanzahl3;
zeilenanzahl3=zeilenanzahl3-1; //Korrekturschritt ergab sich
fclose(quelle); //Zurücketzen des Zeigers auf den Anfang
quelle=fopen(dateiname,"r");
for (int k=0;k<=zeilenanzahl3;++k) //Abschnitt der Berechnung
{
fgets (text,200,quelle); //Lesen der Quelle
++ zeilenanzahl;
if (zeilenanzahl <13) //ersten Zeilen einfach kopieren
{fprintf (ergebnis,"%s",text);}
if(zeilenanzahl >12)
{
if(zeilenanzahl=zeilenanzahl3) //letzte Zeile kopieren
fprintf (ergebnis,"%s",text);
if (zeilenanzahl<zeilenanzahl3) //Zahlen einlesen, verrechnen und ausgeben
{
sscanf (text, "%lf%lf%lf%lf%lf%lf%lf", &a,&b,&c,&d,&e,&f,&g);
a=a*x;
b=b*x;
c=c*x;
fprintf(ergebnis,"%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf", a,b,c,d,e,f,g);
}
}
}
fclose(quelle);
fclose(ergebnis);
printf("Die Daten wurden unter %s gespeichert.\nDie Berechnung ist abgeschlossen, Programm mit Tastendruck beenden.",dateiname2);
taste=_getch();
}