これがうまくいかない理由はわかりません。コードとエラーが付いています。注目する行はif (strlen (String() >= MAX_STR_LEN-1))
STRLENエラー - 文字列タイプ
strlen
を使用して、入力ファイルの現在の文字を保持する一時的な値であるString
を比較しようとしています。 String
のサイズと、値が256の整数の変数MAX_STR_LEN
を比較したいと思います。それ以上の情報があれば教えてください。 (STRLEN(文字列()> = MAX_STR_LEN-1)){} は、文字列の後に()を削除する場合
void ReadData(FILE *InputFile, DArray *DynamicArrayPtr)
{
Data TempData; /* temp variable to hold data */
int lcv = 1; /* loop control variable */
int strLen; /* The actual input string length */
char String[MAX_STR_LEN]; /* temp variable to hold string */
while (EOF != fscanf(InputFile, "%s", String))
{
/* Insert code here to make sure the input data is not too long*/
if (strlen (String() >= MAX_STR_LEN-1)) {
}
else {
printf("Error, input string too long \n");
}
TempData.Num = lcv++;
strcpy(TempData.String, String);
PushToDArray(DynamicArrayPtr, &TempData);
} /* while() */
} /* ReadData() */
文字列を 'strlen'と比較することは非常に悪い考えです。とにかくそれはどうしたらいいのですか? – Olaf
'String'は関数ではありません。なぜあなたはそれを呼んでいますか?かっこと未使用の変数を取り除く。エラーメッセージは非常に明確です。 – TisteAndii
そしてあなたが使っていないヨーダの条件はすべきです。 – Olaf