2016-05-08 3 views
0

私はこのウェブサイトの初心者です。Cでヌル文字を追加できない

ファイルにヌル文字を追加したいとします。

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); 
} 

ただし、ファイルにヌル文字は追加されません。アイデアはありますか?

ありがとうございます。

+0

@Idos:なぜファイルへのポインタを書きますか?そして_nullポインタ_は** ** _null character_、respとはまったく異なるものです。値は「0」である。 – Olaf

+0

'strcmp(is-> fields [i]、" \ b ")== 0、' len> 0'、 'fp!= NULL'をチェックしてください。 – BLUEPIXY

+0

ヌル文字であってはなりません。スペースになる可能性があります。 &&でコードを試してみましょうか?私は文1 && statement2 && ... –

答えて

0

NULL文字がスペース' ''\0'ないが、

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

strcmp C.

内の文字列を終了するためにも使用されている2つの文字列を比較し、 '\b'は、それは文字列定数の整数ではありませんが、文字列リテラルは、 C.

で二重引用符で定義されたアップデート:

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

それは奇妙に動作しません:( –

+1

@ YunusHaznedarあなたは何がうまくいかないのかについていくつかの詳細を投稿することができますか? – fluter

+0

ああ、このif文が間違っていると思いますか?if(strcmp私のコードがこのif-elseブロックに属しているからです。 –

-1

あなたはちょうど使用できると思います

+0

私は一度試しました。それはうまくいきませんでした:(そして、私はそれがとても奇妙です。それは小さな問題です:/ –

+1

それはスペースです! – Olaf

関連する問題