複数行のビンファイルを作成するコードを作成する際に問題があります。それぞれの行に6つの値が含まれています。 私は、各行が「パスワード」になる小さなプロジェクトをやっているので、私のシステムはこのファイルを読み込み、更新された時などにすべてのパスワードを読み込みます。 私は読まない方法を実装しませんでした。私はファイルを操作するために苦労しているので、まだファイル。 このプロジェクトはlinuxでGPIO機能を持つRaspberry pi から実行されるので、Visual Studioを使用してメインコードを作成しています。バイナリファイルに関する助けが必要
私の現在のコードは次のとおりです。事前に
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char keys[4] = { '1', '2', '3', '4' }; // NOT USING
char temp_key[6];
int incl_key() {
int i;
FILE *fp;
char code = "0";
int control = 0;
int var_internal = 0;
fp = fopen("keys.bin", "wb");
if (fp == NULL) {
printf("\n Error opening file. \n");
}
printf("write your sequence <6 digits>:\n");
do{
scanf("%s", &temp_key);
fputs(temp_key, fp);
fputs("\n", fp);
control++;
} while (control < 5);
fclose(fp);
}
int keys_db() {
return 0;
}
int main() {
incl_key();
system("PAUSE");
}
感謝。
あなたの質問が何であるか、またはあなたの特定の問題が何であるかは明確ではありません。それを「行」として整理したいのであれば、それはなぜバイナリファイルですか? – lurker
コードは 'char temp_key [6];で配列境界の外に書き出しています。 scanf( "%s"、&temp_key);そして '' 123456 "'のように入力します。 – chux
あなたの 'temp_key'には6つの要素があり、あなたは6文字のサンプルデータを見せてくれました。これは、 'fputs'を呼び出すときに' temp_key'がいっぱいであり、終端ヌル文字を含んでいないことを意味します。だから 'fputs'は配列をオーバランしてnullを探し、ファイルに何が書かれているのかわからない。 'temp_key'を終端ヌルのための十分なスペースで定義し、' scanf'があまり読み込まないようにしてください。 –