私は入力ファイルの最初の文字を特定の文字(この場合は*と言うことができます)と比較し、一致しない場合は "Hello world"を出力するチェックを実行したいと考えています。Q:Cのテキストファイルからcharを比較するには?
ファイルから読み込むことができます。しかし、strcmp()は入力ファイルの文字と宣言された文字を比較させません。
int main(void)
{
FILE *file = fopen("text.txt", "r");
char c;
char compare[] = "*"
do
{
c = fgetc(file);
compare = strcmp(c,compare); //Something is wrong here I think.
printf("result: %d \n", compare);
}
while (c != EOF);
fclose(file);
return 0;
}
素晴らしいそれが働きました。しかし、私はこの形式で私の関数を作ったときにのみ機能しました: "if(c!= compare [0])"私は[0]を置かないと、プログラムはコンパイルに失敗します。 – jjyj
これは、文字としての比較ではなく文字配列であると定義していないためです 文字配列の値は、メモリ内の最初の文字の位置の値です。最初の文字であるため、角括弧の配列アクセスセマンティクスで選択する必要があります –