所以我试图比较文件中的一行是否符合我的预期,但即使我打印到控制台文件的第一行和我期望的内容,他们看起来完全一样,他们没有通过我的strcmp测试。这是我测试文件的第一行和我期望的方式:
char currentLine[MAXIMUM_LINE_LENGTH + 1]; // + 1 for terminating char
fgets(currentLine, MAXIMUM_LINE_LENGTH, inputFile);
assertCharArrayEquals(currentLine, "00000010000100011001000000100000\n");
我的方法assertCharArrayEquals看起来像:
void assertCharArrayEquals(char *actualCharArray, char *expectedCharArray) {
if (strcmp(actualCharArray, expectedCharArray) == 0) {
printf("PASS: assertCharArrayEquals(%s, %s)\n", actualCharArray, expectedCharArray);
} else {
printf(">>>>>>>FAIL: assertCharArrayEquals(%s, %s)\n", actualCharArray, expectedCharArray);
}
}
我的控制台输出如下:
>>>>>>>FAIL: assertCharArrayEquals(00000010000100011001000000100000
, 00000010000100011001000000100000
)
答案 0 :(得分:1)
根据您的输出,actualCharArray
以换行符('\n'
)结尾,而expectedCharArray
则没有;因此,strcmp
认为它们不相等。