我很困惑为什么我的程序运行不好。我使用 PuTTY 通过 Windows PC 连接到服务器。它总是工作得很好,但我相信发生了一些奇怪的事情。 这是identify.c的代码:
#include <stdio.h>
#include <ctype.h>
int main()
{
while(1)
{
char word[256];
int i;
int validity = 1;
scanf("%s", word);
for(i=0; word[i]!='\0'; i++)
{
if(i == 0)
{
/* First character should only be underscore or a letter */
if(word[i]!= '_' && !isalpha(word[i]))
{
validity = 0;
break;
}
}
else
{
/* Rest can be Alpha-numerics or underscore */
if(word[i]!= '_' && !isalnum(word[i]))
{
validity = 0;
break;
}
}
}
if(validity)
printf("valid\n");
else
printf("invalid\n");
}
return 0;
}
这是用于测试名称是否是可能的标识符名称的输入文件。身份测试.txt:
name
name2
2name
_name
__name
na_me
@name
na-me
然后,我使用 FileZilla 将这两个文件上传到我的服务器。
然后,我执行以下命令以使 recognize.c 可执行:
gcc identify.c -o identify
可执行文件已创建。 然后我运行以下命令:
identify <identifytest.txt >output.txt
创建的output.txt是空的。
有什么想法吗?在过去的两天里我一直为此疯狂,不明白发生了什么。
最佳答案
当 std 输入关闭时,您必须打破无限循环:
if (scanf("%s", word) == EOF) break;
您还可以刷新标准输出以强制将结果写入输出文件:
fflush(stdout);
关于c - 程序运行后没有输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30404936/