habe ein Problem was mich schon sehr lange plagt und da hier ja auch ne Menge Windows-Freaks sind...
Will ein Programm von Linux auf Windows portieren, Code:
Code: Alles auswählen
#include <cstdlib>
#include <cstdio>
using namespace std;
int main(void)
{
const char right[]="z";
FILE* optfp = fopen("test.txt", "r+b");
if(optfp == NULL) {
puts("fp was NULL!");
exit(1);
}
char c;
do { c = fgetc(optfp); } while ( c != '=' );
fputs(right, optfp);
fclose(optfp);
}
Er soll einfach bis zum '=' lesen und danach das b mit einem z überschreiben.
Klappt unter Linux wunderbar. Unter Windows liest er auch bis zum '=',
schreibt dann aber einfach nix (habs kompiliert mit MINGW und AFAIK gings auch mit MSVC nicht).
Ob ich fgetc() durch getc() oder fread() ersetze oder ob ich fputs() ersetze hilft nix.
Nur wenn ich stattdessen mit fseek() vorwärts gehe führt er das fputs() korrekt aus.
Kann Windows kein read und write gleichzeitig?
Oder woran liegt's?
Danke für Antworten im Voraus!
Johannes