Ich habe eine einfache Anwendung geschrieben, die die Datei Zeile für Zeile lesen und anzeigen wird. Für die Datei, die von Linux- oder Windows-Maschinen mit FTP kopiert wird, funktioniert es gut. Bei Dateien, die von Mac OS X kopiert wurden, wird das erste Zeichen der Zeile nicht angezeigt, wenn ich die Zeile drucke.CR/LF Problem für die Datei vom Mac kopiert
Wie wird mit der von Mac OS X kopierten Datei verfahren?
Beispieldatei:
Hello world 1
Hello world 2
Anzeige nach dem Lesen Zeile für Zeile:
ello world 1
ello world 2
Code:
/*****Function to add the NULL termination at end of line*********/
my_func(char *str, int len)
{
if(len)
{
if(str[len-1] != '\r')
{
str[len] = '\0';
}
else
{
str[len-1] = '\0'
}
}
else
{
str[len]='\0';
}
}
Haben Sie das gesuchte Beispieldatei in einem Hex-Editor? – paddy
Die von OS X kopierte Datei entspricht der von Linux kopierten Datei, es sei denn, Sie verwenden die Datei auf eine andere Art und Weise (außer Sie meinen Mac OS 9 oder früher - aber diese Maschinen sollten jetzt tot sein; es ist ungefähr 15 Jahre her, seit Mac OS 9 das letzte Mal veröffentlicht wurde). Sie müssen sich die tatsächlichen Bytes in der Zeile genau ansehen. Zum Beispiel, für (int i = 0; i