【发布时间】:2020-04-11 11:29:06
【问题描述】:
这是我要阅读的文件。
single
splash
single
V-Line
h-line
检查字符串是否相等的宏。
#define STR_MATCH(a,b) (strncmp((a),(b),strlen(b)+1) == 0)
这是我用来阅读它的内容。
void readMissilesFile(char* fileName)
{
FILE* mFile;
char missile[7];
/* Open the file. */
mFile = fopen(fileName, "r");
if (mFile != NULL)
{
while (!feof(mFile))
{
fgets(missile, 7, mFile);
if (!(STR_MATCH(missile, "\n")))
{
printf("Missile: %s", missile);
}
}
fclose(mFile);
}
else
{
perror("Could not open the file.");
}
}
所以当我阅读该行时,我在打印出空格时遇到了困难。我试图通过确保它只读取 7 个字符来忽略这一点,这是每个导弹的最大长度。然后我创建了一个名为 strcmp 的宏,它只检查它们是否相等(希望不打印它)。
请找到附加的宏。
提前致谢,任何帮助都很棒。 :)
【问题讨论】:
-
您只读取 6 个字符 + 空终止符。您的行包含换行符,因此在您再次调用 fgets 之前您不会得到它。为您的线路留出更多空间。
-
改了也没有用。我之前已经尝试过。
标签: c file parsing file-io newline