WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Simulationen > Designer Forum

Designer Forum Treffpunkt für Gedankenaustausch von Simmern, die selbst

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 06.07.2003, 16:58   #21
harry3
Inventar
 
Registriert seit: 11.06.2001
Alter: 38
Beiträge: 2.397


harry3 eine Nachricht über ICQ schicken
Standard

Du hast bei deinem letzten code geschrieben:
if(strlen(wert))

Da scheint durchs Forum wieder mal was verschwunden sein, oder!?

if(strlen(wert) == 5) {} ...mit 5 müssten sich ja dann die 4 Zahlen darstellen lassen, oder?


Viele Grüße,
Harri
harry3 ist offline   Mit Zitat antworten
Alt 06.07.2003, 17:23   #22
HansHartmann
Inventar
 
Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908


Standard

das "if(strlen(wert))" entspricht "if(strlen(wert) != 0)". Das ergibt sich dadurch, dass in C/C++ 0 dem Wert false und alles andere true entspricht. Funktioniert also.

5 würden für 4 Zahlen (plus \0) ausreichen.

<< "C:\\Programme\\Microsoft Games\\FS2002\\Gauges\vsi.txt" >>

Da fehlt noch ein Backslash vor "vsi.txt". Könnte es das sein?
____________________________________
Bis dann,
Hans
Digital Aviation
HansHartmann ist offline   Mit Zitat antworten
Alt 06.07.2003, 18:38   #23
harry3
Inventar
 
Registriert seit: 11.06.2001
Alter: 38
Beiträge: 2.397


harry3 eine Nachricht über ICQ schicken
Standard Hallo Hans!

Nein, den backslash hab ich sonst immer gehabt...hab ich nur jetzt im Forum vergessen. Kann es sein dass das Leerzeichen bei Microsoft Games Probleme bereitet???

Das Gauge selbst funktioniert aber auch noch nicht ganz einwandfrei: Leider erzeugt der code immer noch 5 Fehler und 2 Warnungen.

Viele Grüße,
Harri


#include
#define datei "gauge.txt"

FILE *pfile;
char wert[4];

pfile=fopen(datei, "r");

//existiert Datei?
if(pfile)
{
fscanf(pfile,"%s",wert);
//steht was drin?
if(strlen(wert))
{
farbe_max=atoi(wert);
farbe_min= - atoi(wert);
}

fclose(pfile);
}
harry3 ist offline   Mit Zitat antworten
Alt 06.07.2003, 19:43   #24
HansHartmann
Inventar
 
Registriert seit: 12.02.2001
Alter: 57
Beiträge: 2.908


Standard

Wie wäre es mit folgender Variante:

#include [stdio.h] // durch spitze Klammern ersetzen
#define datei "gauge.txt" // Keine Pfadangabe = FS2002-Pfad!!!

int farbe_max, farbe_min;
FILE *f

// Schreiben
f = fopen(datei, "w");
if (f)
{
printf(f, "%d", farbe_max);
fclose(f); // fclose() nur dann, wenn fopen() geklappt hat
}

// Lesen
f = fopen(datei, "r");
if (f)
{
fscanf(f, "%d", &farbe_max);
farbe_min = -farbe_max;
fclose(f); // fclose() nur dann, wenn fopen() geklappt hat
}

Wenn Du trotzdem atoi() einsetzen willst, dann musst Du die stdlib.h noch mit includen.
____________________________________
Bis dann,
Hans
Digital Aviation
HansHartmann ist offline   Mit Zitat antworten
Alt 06.07.2003, 19:59   #25
harry3
Inventar
 
Registriert seit: 11.06.2001
Alter: 38
Beiträge: 2.397


harry3 eine Nachricht über ICQ schicken
Frage Hallo!

Danke für den Code, aber es ist immer noch der gleiche erste Error:
Da muss der Fehler doch irgendwo anders liegen, denn sowohl mein Code(der in Turbo C++ gut funktioniert), Arne's Code und dein Code fangen mit dem gleichen Error an...

error C2040: 'f' : 'int ' differs in levels of indirection from 'struct _iobuf *'


mfg
harri
harry3 ist offline   Mit Zitat antworten
Alt 06.07.2003, 20:02   #26
bartels
Jr. Member
 
Registriert seit: 01.10.2002
Alter: 57
Beiträge: 90


Standard

Könntest Du eventuell zu dem Error auch die Zeilennummern im Code angeben? Damit wir wissen zu welcher Zeile welcher Error gehört.
Arne Bartels
bartels ist offline   Mit Zitat antworten
Alt 06.07.2003, 20:04   #27
harry3
Inventar
 
Registriert seit: 11.06.2001
Alter: 38
Beiträge: 2.397


harry3 eine Nachricht über ICQ schicken
Standard Voila'

Von MSDN-zum error:


Compiler Error C2040
'operator' : 'identifier1' differs in levels of indirection from 'identifier2'

An expression involving the specified operator had inconsistent levels of indirection.

If both operands are of arithmetic type or if both are not (such as array or pointer), then they are used without change. If one operand is arithmetic, but the other is not, the arithmetic operator is converted to the type of the other operator.

//-------------------------------------------------------



C:\Programme\Microsoft Visual Studio\MyProjects\vs3\subgauges\vsi_gauge.c(44) : error C2040: 'f' : 'int ' differs in levels of indirection from 'struct _iobuf *'
C:\Programme\Microsoft Visual Studio\MyProjects\vs3\subgauges\vsi_gauge.c(44) : error C2099: initializer is not a constant
C:\Programme\Microsoft Visual Studio\MyProjects\vs3\subgauges\vsi_gauge.c(45) : error C2059: syntax error : 'if'
C:\Programme\Microsoft Visual Studio\MyProjects\vs3\subgauges\vsi_gauge.c(215) : warning C4554: '&' : check operator precedence for possible error; use parentheses to clarify precedence
C:\Programme\Microsoft Visual Studio\MyProjects\vs3\subgauges\vsi_gauge.c(221) : warning C4554: '&' : check operator precedence for possible error; use parentheses to clarify precedence
C:\Programme\Microsoft Visual Studio\MyProjects\vs3\subgauges\vsi_gauge.c(233) : warning C4554: '|' : check operator precedence for possible error; use parentheses to clarify precedence
C:\Programme\Microsoft Visual Studio\MyProjects\vs3\subgauges\vsi_gauge.c(283) : warning C4554: '|' : check operator precedence for possible error; use parentheses to clarify precedence
Error executing cl.exe.

vs3.gau - 3 error(s), 4 warning(s)
harry3 ist offline   Mit Zitat antworten
Alt 06.07.2003, 20:15   #28
bartels
Jr. Member
 
Registriert seit: 01.10.2002
Alter: 57
Beiträge: 90


Standard

Ne ich meinte im Code dazu auch irgendwie die Zeilennummern anbringen, es reicht ja eine zu Beginn dann kann man weiterzählen.
Übrigens Hans' code funktioniert im Wesentlichen:
Code:
#include <stdio.h>
#define datei "gauge.txt" // Keine Pfadangabe = FS2002-Pfad!!!
int farbe_max=3000, farbe_min=-3000;
FILE *f;
// Schreiben
f = fopen(datei, "w");
if (f)
{
fprintf(f, "%d", farbe_max);
fclose(f); // fclose() nur dann, wenn fopen() geklappt hat
}

// Lesen
f = fopen(datei, "r");
if (f)
{
fscanf(f, "%d", &farbe_max);
farbe_min = -farbe_max;
fclose(f); // fclose() nur dann, wenn fopen() geklappt hat
}
Arne Bartels
bartels ist offline   Mit Zitat antworten
Alt 06.07.2003, 20:17   #29
harry3
Inventar
 
Registriert seit: 11.06.2001
Alter: 38
Beiträge: 2.397


harry3 eine Nachricht über ICQ schicken
Standard

ich hab dir die zeile 34 angezeichnet!
direkt unter //schreiben


#include
#define datei "gauge.txt" // Keine Pfadangabe = FS2002-Pfad!!!
int farbe_max=3000, farbe_min=-3000;
FILE *f;
// Schreiben
34.)f = fopen(datei, "w");
if (f)
{
fprintf(f, "%d", farbe_max);
fclose(f); // fclose() nur dann, wenn fopen() geklappt hat
}

// Lesen
f = fopen(datei, "r");
if (f)
{
fscanf(f, "%d", &farbe_max);
farbe_min = -farbe_max;
fclose(f); // fclose() nur dann, wenn fopen() geklappt hat
}
harry3 ist offline   Mit Zitat antworten
Alt 06.07.2003, 20:22   #30
bartels
Jr. Member
 
Registriert seit: 01.10.2002
Alter: 57
Beiträge: 90


Standard

Ist das #include oder #include <stdio.h> ?
Arne Bartels
bartels ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist an.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:37 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag