Ich lerne, freopen()
zu verwenden, um stdin in eine Datei umzuleiten.Kann Datei nicht öffnen, die relativen Pfad in Freopen() unter OS X verwendet?
Ich bin unter OS X 10.10
und ich verwende Xcode, um meinen Code auszuführen.
Hier ist mein Code:
#include <stdio.h>
int main(int argc, const char * argv[]) {
freopen("../data.in", "r", stdin);
char a;
scanf("%c", &a);
fclose(stdin);
printf("%c", a);
return 0;
}
EDIT I tree
Befehl in Terminal verwenden Dateistruktur zu zeigen, und der Ausgang ist
.
├── competition
│ └── main.c
├── competition.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ └── competition.xccheckout
│ │ └── xcuserdata
│ │ └── yang.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ └── yang.xcuserdatad
│ ├── xcdebugger
│ │ └── Breakpoints_v2.xcbkptlist
│ └── xcschemes
│ ├── competition.xcscheme
│ └── xcschememanagement.plist
├── data.in
└── makefile
ich auch die Ausgabe von freopen()
überprüfen haben. Die Funktion hat NULL
zurückgegeben.
Ich habe nichts während Ich bekam korrekte Ausgabe, als ich "../data.in"
zum absoluten Pfad änderte.
Wie kann ich es mit relativen Pfaden beheben?
Dieses Problem konnte nicht reproduziert werden. Sind Sie sicher, dass dies kein Problem mit dem Dateinamen ist? – sjsam