がオフに開始するには、私は別の1の補数が含まれているC-ファイルを(復号化するために、ユーザーに尋ねたとえば、偶然見つけC.Cプログラミング - ファイルの終わりの1の補数
で初心者ですc-ファイル)。
通常は、次の文
while ((ch = fgetc(fs)) != EOF)
を使用して文字をコピーしますが、ファイルを復号化しながら、私は、問題を抱えています。私は以下を試しました -
while (~(ch = fgetc(fs)) != EOF)
結果は - プログラムが不定ループに入ります。私はEOFのASCII値(26)を使ってみましたが、それでも私の好きなところではうまくいきませんでした。
ご協力いただければ幸いです。前もって感謝します。
/*ファイルを復号するためのプログラム*/
ここでは完全なコードがある - あなたが値を比較する必要が
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fs, *ft;
char ch;
fs = fopen("xyz.c", "r");
ft = fopen("xyz1.c", "w");
if((fs == NULL) || (ft == NULL))
{
printf("Cannot open the file.\n");
exit(1);
}
while (~(ch = fgetc(fs)) != EOF)
fputc(~ch, ft);
fclose(fs);
fclose(ft);
}
'EOF'は文字ではありません。それはストリーム状態であり、 'getchar()'はファイルの終わりに達したために読み込みに失敗したときに 'EOF'を返します。あなたが解読しているものの一部ではありません(補完する必要はありません)。 – FatalError
あなたの質問を更新して、使用している実際のコードを表示してください。 'while(((〜ch)= fgetc(fs))!= EOF)'はコンパイルされません。あなたは割り当ての左側に '(〜ch)'を持つことはできません。 –
'ch 'はどうやって宣言しましたか? –