为什么我的文件指针导致未定义的符号错误?

时间:2012-10-29 17:51:13

标签: c

到目前为止,这是我的代码:

#include <stdio.h>

int main(void)
{
    char filename[50];   /* for holding file's name  */
    FILE *fp;            /* fp is the "file pointer" */

    printf("Please enter the name of an input file: ");
    scanf("%s", filename);

    if (!(fp = fopen(filename, "w")))    /*w=write*/
            fprintf(stderr, "unable to open file\a\n");
    else {/* process file */
            fprintf(fp, "Testing...\n");
    }
    return 0;
}

该行

FILE *fp; 
//is giving me an error Undefined Symbol "FILE"

该行

fprintf(stderr, "unable to open file\a\n"); 
//is giving me an error Undefined Symbol "stderr"

我认为这些关键字是标准的C / C ++?他们为什么给我错误?

2 个答案:

答案 0 :(得分:9)

你有#include <stdio.h>吗?您的main()声明也是错误的。它应该返回int,而不是void

不,FILE不是C或C ++中的关键字。其声明在<stdio.h>

答案 1 :(得分:1)

请在文件

中添加以下行作为第一句话

#include <stdio.h>

数据类型FILE和函数(如fprint())在此头文件中定义,因此您需要运行程序(告诉编译器FILE,fprintf()等的定义)