2016-08-05 38 views
0

Verwenden der Visual Studio-IDE, Schreiben in C. Programm liest eine einfache .txt-Datei, konvertiert von Fahrenheit in Celsius und schreibt in eine neue .txt-Datei Warum wird es nicht gefunden? TXT-Datei? Hier ist mein Code:Debug-Assertion fehlgeschlagen, Expression-Stream! = Nullptr

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 

int main(void) 
{ 
double tempArray[30]; 
double temp; 
double sum = 0; 
int input_status; 
int count = 0; 
double convert; 
FILE *infile, *outfile; 
infile = fopen("temperature.txt", "r"); 
if (infile == NULL) { 
    perror("Failed: "); 
    return 1; 
} 
outfile = fopen("results.txt", "w"); 

int i = 0; 
input_status = fscanf(infile, "%lf", &temp); 
double max, min = temp; 
while (input_status != EOF) 
{ 

    tempArray[i] = (temp - 32) * 5/9; ; 
    sum += tempArray[i]; 

    fprintf(outfile, "%f \n", tempArray[i]); 

    if (tempArray[i] > max) 
     max = tempArray[i]; 

    if (tempArray[i] < min) 
     min = tempArray[i]; 

    count++; 
    i++; 

    input_status = fscanf(infile, "%lf", &temp); 

} 

double average = sum/count; 

fprintf(outfile, "\n The average of the temperatures is %f \n", average); 
fprintf(outfile, "\n The maximum of the temperatures is %f \n", max); 
fprintf(outfile, "\n The minimum of the temperatures is %f \n", min); 

fclose(infile); 
fclose(outfile); 
system("pause"); 

}

here's where the .txt file is

this is the error code i received

+0

Sie überprüfen nicht, ob 'fopen' erfolgreich ist oder nicht. Sieht so aus, als wäre das 'fopen' für das Ergebnis fehlgeschlagen. – kaylum

+1

Und bitte keine SMS als Bilder. Fügen Sie ihn als Text in die Frage ein, damit andere ihn einfacher für die Referenzierung in Kommentaren/Antworten kopieren können. – kaylum

+0

Auch wenn ich überprüfe, ob es erfolgreich geöffnet wird, ändert sich das nicht, warum es nicht erfolgreich ist. Warum findet es die .txt-Datei nicht? – Destreation

Antwort

1

Ich nannte die Datei "temperature.txt" und war bereits eine TXT-Datei, so dass der Dateiname tatsächlich "temperature.txt.txt" war. Kleiner Fehler, großes Problem. Danke für deine Hilfe.

+0

Ahh, da gehst du. :) Ich habe das vielleicht vom Screenshot bemerkt. Markieren Sie dies als Antwort (und geben Sie sich selbst einige Punkte). –

+0

Danke David dafür, so nett zu sein – Destreation

0

Die ausführbare Datei, die in dem Debug-Ordner ausgeführt ist (in diesem Fall), so temperature.txt Bedürfnisse in diesem Ordner sein oder es muss "..\temperature.txt" oder ähnlich in fopen() übergeben werden.

+0

warum ist das? das ist richtig Syntax richtig? – Destreation

+0

Ich sehe nicht, was Kaylum sieht, also kann ich nicht anders. Aber als eine weitere Beobachtung zeigen Sie 'temperature.txt' in' Projects \ TempRecorder.c \ TempRecorder.c \ ', aber die ausführbare Datei in' Projects \ TempRecorder.c \ Debug \ ', also den relativen Pfad für 'fopen()' wäre in diesem Fall tatsächlich ".. \ TempRecorder.c \ temperature.txt". –

+0

also muss ich den ganzen weg von meinem c-laufwerk setzen oder richtig debuggen? weil ich beides ausprobiert habe und es immer noch nicht ausführen kann – Destreation