【发布时间】:2019-12-08 14:46:48
【问题描述】:
我正在使用 txt 文件中的 fgetc 字符串。 在实际字符串之前,该行可以包含许多空格。 在字符串之后,单词之间不应有空格。
welcome //vaild
hello //valid
hello friend //invalid
这是我尝试过的方法
int main(int argc, char **argv)
{
FILE *file = fopen("test.txt", "r");
if (!file)
return -1;
char input;
while ((input = fgetc(file)) != EOF)
{
if(input == ' ')
{
if (input + 1 != '\n' || input +1 != EOF)
{
printf("wrong\n");
}
}
}
return 0;
}
代码为“hellofriend”字符串打印“错误”,但如果有效字符串之前有空格,它也会打印“错误”。有人可以告诉我如何修改我的代码吗?
【问题讨论】:
-
你认为
input + 1在你的代码中做了什么? -
我想“错误”应该是“错误”?
-
input应该是int以便 EOF 可以适应 -
另外,您在任何地方都无法使用
fgets。只有fgetc。为什么要写fgets并用它来标记它? -
仔细阅读C language上的文档。您可能想使用sscanf 或string functions