我正在编写一个解密程序,我需要扫描未知数量的字符串并在输入每个字符串时对其进行解码。程序必须在到达 EOF 时结束。
我很难让程序结束。当我在while循环条件语句中扫描字符串中的第一个字符时,它正在执行此操作,但是当我在条件语句下方的实际字符串中扫描时,字符串缺少第一个字符。我应该扫描第一个字符,然后以某种方式将该字符放在字符串的开头吗?
在我的情况下如何正确测试 EOF?
#include <stdio.h>
#include<string.h>
int main(void)
{
int i;
char code[300];
while(scanf("%c", &code[0])!=EOF)
{
scanf("%s", code);
for(i=0; i<strlen(code); i++)
{
decrypt message one char at a time
}
printf("\n");
}
return 0;
}