こんにちは、
if('\t' == input [0] ||'\v' == input [0] ||'\r' == input [0] ||'\n' == input [0] || '\0' == input[0] || '' == input[0])
inputはcharの配列です:)
これは、ファイル内の空白行をチェックするコードの行ですが、たとえば、空白行を取得することはありません。
私のコードは8桁の16進値を読み取り、無効な(すでにソートされている)場合、または空白またはEOFのある空の行がある場合に終了したいと思います。
私のファイルがこのような場合は機能します...1111111111111111
^空の行にスペースがありますが、スペースがない場合は、インフィティループに侵入するだけです。これは非常に煩わしいことです。
#define MAXIN 4096
static char input[MAXIN];
char last;
/*Reading the current line */
fgets(input, MAXIN, f);;
if (input[8] == '\r') input[8] = '\0';
/* First of all check if it was a blank line, i.e. just a '\n' input...*/
if('\t' == input [0] ||'\v' == input [0] ||'\r' == input [0] ||'\n' == input [0] || '\0' == input[0] || '' == input[0])
{printf("##EMPTY");return(INERR);}
if ('\n' == input[0]) return(INERR);
if ((sscanf(input,"%8x%c",&result,&last) < 2)) return(INERR);
if ('\n' != last) return(INERR);
}