Dies kann leicht mit STL gelöst werden. Es wurde kommentiert. Wenn Sie sich immer noch nicht sicher sind, lernen Sie STL.
#include
#include
#include
using namespace std;
void main()
{
ifstream in("F:\in.txt"); //Die Datei befindet sich in Laufwerk F und ist geöffnet
int key; //entspricht ungeraden Werten
doppelter Wert; //entspricht einer geraden Zahl
pair
map
cout
while (in>>key>>value) //Daten lesen
{
cout
ar=make_pair(key,value);//Schlüssel-Wert-Paar erstellen
maplist.insert(ar); //In Maplist einfügen, dieser Container wird automatisch nach Schlüsselwert sortiert
}
in.close();
ofstream out("F:\out.txt"); //Ausgabedatei
cout
for(map
{
out
cout
}
out.close();
getchar();
}
Wenn Sie die Sprache C verwenden, um das Problem zu lösen, können Sie eine Struktur mit zwei Werten erstellen, dann ein Array oder eine verknüpfte Liste dieser Struktur erstellen, um die gelesenen Daten zu speichern, dann nach dem ersten Wert in der Struktur sortieren und schließlich ausgeben.
#include
Void-Rechner()
{
int a,b,c,d;
char x,y;
DATEI *fp1,*fp2;
fp1=fopen("expres.txt","r");
fp2=fopen("result.txt","w");
printf("Bitte eingeben");
fscanf(fp1,"%d%c%d",&a,&x,&b);
fprintf(fp1,"%d%c%dn",a,x,b);
Schalter (x)
{
Fall '+':
c=a+b;
printf("%d%c%d=%dn",a,x,b,c);
fprintf(fp2,"%d%c%d=%dn",a,x,b,c);
Pause;
Fall '-':
c=a-b;
printf("%d%c%d=%dn",a,x,b,c);
fprintf(fp2,"%d%c%d=%dn",a,x,b,c);
Pause;
Fall '*':
c=a*b;
printf("%d%c%d=%dn",a,x,b,c);
fprintf(fp2,"%d%c%d=%dn",a,x,b,c);
Pause;
case '/':
c=a/b;
printf("%d%c%d=%dn",a,x,b,c);
fprintf(fp2,"%d%c%d=%dn",a,x,b,c);
Pause;
Standard:
printf("Eingabefehler!n");
Pause;
}
}
int main()
{
Rechner();
return 0;
}
Der vollständige Code sieht so aus, dann erstellen Sie selbst eine neue express.txt und geben den Ausdruck darin ein, z. B. 3+4
Dann ausführen und 3+4=7 wird in result.txt ausgegeben
1. Die C-Sprachstandardbibliothek bietet eine Reihe von Dateioperationsfunktionen. Dateioperationsfunktionen werden im Allgemeinen in der Form f + Wort benannt (f ist die Abkürzung für Datei) und ihre Deklaration befindet sich in der Header-Datei stdio.h. Zum Beispiel werden die Funktionen fopen und fclose zum Öffnen und Schließen von Dateien verwendet; die Funktionen fprintf und fputs werden zum Schreiben von Dateien verwendet; die Funktionen fseek werden zum Abrufen und Festlegen von Dateioperationspositionen verwendet. Allgemeine C-Sprach-Tutorials enthalten ein Kapitel über Dateioperationen. Sie können dieses Lehrbuch zum weiteren Studium finden.
2. Routine:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include
inta;
charb,c[100];
intmain(){
FILE* fp1 = fopen("input.txt", "r"); //Öffne die Eingabedatei
FILE* fp2 = fopen("output.txt", "w"); //Ausgabedatei öffnen
if(fp1==NULL || fp2==NULL) {//Beenden, wenn das Öffnen der Datei fehlschlägt
puts("Datei kann nicht geöffnet werden!");
rturn 0;}
fscanf(fp1,"%d",&a);//Eine Ganzzahl aus der Eingabedatei lesen
b=fgetc(fp1); //Ein Zeichen aus der Eingabedatei lesen
fgets(c,100,fp1); //Eine Zeichenfolge aus der Eingabedatei lesen
printf("%ld",ftell(fp1)); //Die Offset-Anzahl der Bytes der aktuellen Position des fp1-Zeigers relativ zum Anfang der Datei ausgeben
fputs(c,fp2); //Eine Zeichenfolge in die Ausgabedatei schreiben
fputc(b,fp2); //Schreibe ein Zeichen in die Ausgabedatei
fprintf(fp2,"%d",a); //Schreibe eine Ganzzahl in die Ausgabedatei
fclose(fp1); //Schließe die Eingabedatei
fclose(fp2); //Schließen Sie die Ausgabedatei, entspricht dem Speichern
return0;
}
So schreiben Sie die Ausgabeergebnisse eines C-Programms in eine TXT-Datei
#include
int IsLeapYear(int Jahr)
{
if((year%4==0&year%100!=0)||(year%400==0))
return 1;
sonst
return 0;
}
int Monat_Tag(int Jahr,int Monat)
{
int mon_day[]={31,28,31,30,31,30,31,31,30,31,30,31};
if(IsLeapYear(year)&month==2)
zurück 29;
sonst
return(mon_day[month-1]);
}
int DaySearch(int Jahr,int Monat,int Tag)
{
int c=0;
float s;
int m;
for(m=1;mc=c+month_day(year,m);
c=c+Tag;
s=year-1+(float)(year-1)/4+(float)(year-1)/100+(float)(year-1)/400-40+c;
return ((int)s%7);
}
int PrintAllYear(int Jahr)
{
int temp;
int i,j;
DATEI *fp;
if((fp=fopen("year.txt","wt"))==NULL)
{
printf("Datei kann nicht geöffnet werden");
return 1;
}
fprintf(fp,"nn%d yearn",year);
for(i=1;i
{
temp=DaySearch(year,i,1);
if(i==1)
{
if(temp==0) fprintf(fp,"n erster Tag ist %dn",7);
else fprintf(fp,"n erster Tag ist %dn",temp);
}
fprintf(fp,"nn%d monatlich",i);
fprintf(fp," S M T W T F S n");
for(j=1;j
{
if(j-temp
fprintf(fp," ");
sonst
fprintf(fp,"%3d",j-temp);
if(j%7==0)
fprintf(fp,"n");
}
}
fclose(fp);
return 0;
}
void main()
{
int Jahr;
printf("nBitte geben Sie ein Jahr ein(XXXX)");
scanf("%d",&Jahr);
PrintAllYear(Jahr);
}
Das obige ist der detaillierte Inhalt vonIch möchte alle um Rat fragen: Wie verwende ich die C-Sprache zum Konvertieren von Textdateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!