[英]ISO C90 Error: Declarations
首先,我要说这个标准是必需的,也是我目前必须使用的标准。
无论如何,我遇到一个错误,并尝试将我的FILE *块移动到main的内部/外部,可执行文件等之前。
#include <stdio.h>
#include <stdlib.h>
/* Initialize vars */
char c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12;
int main()
{
/* Open encrypted.txt for reading */
FILE *enc;
enc = fopen("encrypted.txt", "r");
/* Retrieve individual characters, displace by 4 letters (decryption method) */
c1 = (getc(enc))-4;
c2 = (getc(enc))-4;
c3 = (getc(enc))-4;
c4 = (getc(enc))-4;
c5 = (getc(enc))-4;
c6 = (getc(enc))-4;
c7 = (getc(enc))-4;
c8 = (getc(enc))-4;
c9 = (getc(enc))-4;
c10 = (getc(enc))-4;
c11 = (getc(enc))-4;
c12 = (getc(enc))-4;
/* Display resulting decrypted message */
printf("%c%c%c%c%c%c%c%c%c%c%c%c", (char)c1, (char)c2, (char)c3, (char)c4, (char)c5, (char)c6, (char)c7, (char)c8, (char)c9, (char)c10, (char)c11, (char)c12);
/* Write decrypted message to new file named "decrypted" */
FILE *dec;
dec = fopen("decrypted", "w");
fprintf(dec,"%c%c%c%c%c%c%c%c%c%c%c%c", (char)c1, (char)c2, (char)c3, (char)c4, (char)c5, (char)c6, (char)c7, (char)c8, (char)c9, (char)c10, (char)c11, (char)c12);
/* Close files */
fclose(enc);
fclose(dec);
}
任何有关如何摆脱这个错误的提示,不胜感激! 提前致谢
C90不允许在块中的其他语句之后声明变量,因此您需要在声明enc的顶部和顶部声明dec:
int main()
{
/* Open encrypted.txt for reading */
FILE *enc, *dec;
...
}
在C99中,您可以在其他语句之后并在for循环中声明。 但不是在C90中
如果使用gcc,请使用-std = c99选项来避免此错误。
gcc -std=c99 -Wall source.c
要么
移动FILE *dec;
到FILE *enc;
的下方FILE *enc;
像这样
FILE *enc;
FILE *dec;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.