-1

重複の可能性:
C プログラミング - ファイル - fwrite

含める.... >

int main(void)
{

  FILE *Archivo;
  int proba=5;

  Archivo=fopen("md3.dat", "ab+");
  fwrite(&proba, sizeof(int), 1, Archivo);
  fclose(Archivo);
  printf("Bye!\n\n");
}

バイナリ fila md3.dat に数値を出力できません。助けてください!

4

2 に答える 2

3

fwriteOPはファイルにASCII 10進文字列を書き込むことを期待していると思いますfprintfが、出力がバイト5,0,0,0(すべての印刷不可能な文字)であると混乱し、エディターで開いたりcat印刷したりするとおそらく空白になります端末 (またはtypeDOS) に。

テキストを書きたい場合は、 を使用しますfprintf

于 2010-11-29T00:46:48.417 に答える
1

これを試して:

Archivo = fopen("md3.sat", "wb+");
fseek(Archivo, 0, SEEK_END);
fwrite(&proba, sizeof(int), 1, Archivo);

これintにより、ファイルの最後に値が書き込まれます。また、関数の戻り値を確認する必要があります。覚えておいてください:あなたはCにいます!! .

int written;
Archivo = fopen("md3.sat", "wb+");
if (Archivo != NULL) {
    fseek(Archivo, 0, SEEK_END);
    written = fwrite(&proba, sizeof(int), 1, Archivo);
    printf("%d int values written!\n", written);
}
于 2010-11-29T00:03:05.110 に答える