2016-05-08 8 views
0

Ich bin Anfänger in dieser Website.Kann kein Nullzeichen in C hinzufügen

Ich möchte ein Null-Zeichen zu meiner Datei hinzufügen.

if (strcmp(is->fields[i], "\b") == 0) 
{ 
    int len = atoi(is->fields[i + 1]); 
    char bosluk = '\0'; 
    FILE *fp = fopen("cikis.dat", "a"); 
    for (int j = 0; j<len; j++) 
    { 
     fprintf(fp, "%c", bosluk); 
    } 
    fclose(fp); 
} 

Aber es fügt Nullzeichen in meiner Datei nicht hinzu. Habe eine Idee?

Vielen Dank.

+0

@Idos: Warum sollte man einen Zeiger auf eine Datei schreiben? Und ein _null pointer_ ist eine ganz andere Sache als ** the ** _null character_, resp. der Wert "0". – Olaf

+0

check 'strcmp (is-> fields [i]," \ b ") == 0',' len> 0', 'fp! = NULL' – BLUEPIXY

+0

Es muss kein Nullzeichen sein. Es könnte Platz sein. Ich werde deinen Code mit && right versuchen? Ich meine, wenn Aussage1 && Aussage2 && ... –

Antwort

0

Das Null-Zeichen ist '\0', nicht Raum ' ' ist es auch zu beenden Strings in C. verwendet

char bosluk = '\0'; 
fprintf(fp, "%c", bosluk); 

strcmp zwei Strings vergleicht, '\b' ist eine ganzzahlige Konstante, es ist kein String, Stringliterale sind definiert mit doppelten Anführungszeichen in C.

Update:

FILE *fp = fopen("cikis.dat", "a"); 
if (strcmp(is->fields[i], "write") == 0) 
{ 
     fprintf(fp, "Hello Hello"); 
} 
fclose(fp); 
+0

Es funktioniert nicht seltsam :( –

+1

@YunusHaznedar können Sie einige Details auf, was funktioniert es nicht? – fluter

+0

Oh, denken Sie, dass diese If-Anweisung falsch ist? If (strcmp (is-> fields [i], '\ b') == 0) Vor allem hier -> '\ b'? Denn mein Code gehört zu diesem if-else Block. –

-1

Ich glaube, Sie können einfach

fprintf(fp, " "); 

stattdessen verwenden.

+0

Ich habe es einmal versucht. Es hat auch nicht funktioniert :(Und ich bin so wütend von diesem. Es ist so ein kleines Problem:/ –

+1

Das ist ein Leerzeichen! – Olaf

Verwandte Themen