錯誤:在 C99 模式之外使用‘for’循環初始化聲明


slrps@linux-vnbn:~/BeginningC/chapter12> gcc Program12.1.c -o Program12.1
Program12.1.c: 在函數‘main’中:
Program12.1.c:24: 錯誤:在 C99 模式之外使用‘for’循環初始化聲明

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

const int LENGTH = 80;

int main(void)
{
    char mystr[LENGTH];
    int lstr = 0;
    int mychar = 0;
    FILE *pfile = NULL;
    char *filename = "myfile.txt";
    printf("n\Enter an intersting string of less than 80 characters:\n");
    fgets(mystr, LENGTH, stdin);
    
    if (!(pfile = fopen(filename, "w")))
    {
        printf("Error opening %s for writing.", filename);
        exit(1);
    }
    
    lstr = strlen(mystr);
    for (int i = lstr - 1; i >= 0; i--)
    {
        fputc(mystr[i], pfile);
    }
    fclose(pfile);
    
    if (!(pfile = fopen(filename, "r")))
    {
        printf("Error opening %s for reading.", filename);
        exit(2);
    }
    
    while ((mychar = fgetc(pfile)) != EOF)
        putchar(mychar);
    putchar('\n');
    
    fclose(pfile);
    return 0;
    
}

錯誤處理:

C99 允許在for語句的 “表達式1 ”中定義並初始變量, gcc4 編譯c語言的默認標准是C89, 編譯C99程序需加參數 “–-std=c99” ;使用

gcc Program12.1.c -o Program12.1 --std=c99就解決了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM