c - ISO C90 错误 : Declarations

标签 c declaration

首先我要说这个标准是必需的,也是我目前必须使用的。

无论如何,我遇到了一个错误,并尝试将我的 FILE * block 移动到所有地方,在 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 不允许在 block 中的其他语句之后声明变量,因此您需要在声明 enc 的同时在顶部声明 dec:

int main()
{

    /* Open encrypted.txt for reading */
   FILE *enc, *dec;
   ...
}

关于c - ISO C90 错误 : Declarations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18951622/

相关文章:

c - linux c : what's the common use case of "sched_setaffinity" function? 我觉得没用

c - 3D 金字塔看起来散乱,两边混在一起

c - For 循环应该是良构的

c - 我的列表中的额外优势?

c++ - 我是否应该在我的头文件中包含 <stdio.h>,这样我就可以声明一个接受 FILE* 的函数?

javascript - Flow 是否存在不完整(部分)声明之类的情况?

C 编程语言 , 制作有用的程序

java - 在 Java 中的 `if` 语句中声明一个变量,该变量根据条件不同而不同

javascript函数范围,变量声明

c++ - 数组的 Stackoverflow 数组