これは私のコードです
#include<stdio.h>
#include<stdlib.h>
#include"boolean.h"
/*
boolean ceksama(char c[20])
{
FILE *f;
int retval;
boolean same=false;
char ccarray[20];
int i,j;
char cc;
f=fopen("filepelanggan.exe","r");
j=0;
while(c[j]!='\0')
{
j=j+1;
}
retval=fscanf(f,"%c",&cc);
while((retval!=EOF)&&(!(same)))
{
i=1;
while(cc!='\0');
{
retval=fscanf(f,"%c",&cc);
ccarray[i]= cc;
i=i+1;
}
if(i!=j)
{
same=false;
}
else
{
if(ccarray[i]=c[j])
{
same=false;
}
else
{
same=true;
}
}
}
fclose(f);
return same;
}
*/
int main()
{
FILE *f;
char nama[20];
int retval;
char c;
int i=1;
/*algoritma*/
f=fopen("customerfile.txt","a");
printf("\nenter your name:");
scanf("%c",&c);
/*
if (!(ceksama))
{*/
while (c=='\n')
{
scanf("%c",&c);
}
while (c!='\n')
{
nama[i]=c;
i=i+1;
scanf ("%c",&c);
}
nama[i]=c;
i=1;
while(nama[i] != '\n')
{
retval=fprintf(f,"%c",nama[i]);
i=i+1;
}
fprintf(f,"%c",'\0');
fprintf(f,"%c",'\n');
/*}
else
{
printf("data has been registered");
}*/
fclose(f);
}
私のコードでは、名前を入力して外部ファイルに保存したいのですが、名前が外部ファイルに既に存在するかどうかにかかわらず、後で名前入力でチェックされます
main
私のメインプログラムであり、その上に名前が既に存在するかどうかを確認する関数があります。しかし、プログラムが正常に動作するように、コメント モードでチェック機能を作成します。
問題は、チェック機能をアクティブにすると、プログラムは引き続き機能しますが、既に登録されているかどうかに関係なく、名前を入力しようとするたびに、常に登録済みと表示されるため、その名前を外部ファイルに保存できないことです
チェック機能を無効にしている間(コメントモードにする)、プログラムは正常に動作し、名前を外字に保存します。しかし、その名前がすでに存在するかどうかはチェックしませんでした。したがって、名前は 2 回以上格納される場合があります。
このプログラムを作成するための私のアルゴリズムは、名前を入力すると、文字で読み取られるようになっています (先生が string や string.h の使用を禁止しているため)。したがって、文字ごとに外部ファイルに保存する必要があります。確認の際、文字で確認もしましたがダメでした
自分から宣言boolean.h
します