Id返回1退出状态 - 文件读取

时间:2016-03-24 16:48:17

标签: c

我是C和C ++的新手,我的代码中有一个错误,我无法找到答案,因为当我发现一个答案时,更多决定浮出水面。这是我的代码:

#include <stdio.h>   /* required for file operations */
FILE *file;

int main(void)
{
    double content;
    char *mode = "rt";
    int x = 1;
    const char *line();
    int lineInt = 1;
    const char *y;
    double data[1000];
    int i;
    double filename;

    if(x = 1)
    {
        scanf("%s", filename);
        file = fopen(&filename, mode);
        if (file == NULL)
        {
            fprintf(stderr, "Can't open input file!\n");
            exit(1);
        }
        while (fgets (&line, 1000, file) != NULL);
        {
        lineInt == line;
        scanf(&line, "string", &data[lineInt]);
        line == line + 1;
        }
        fclose(file);  /* close the file prior to exiting the routine */
        for(i=1; i < line; i++);
        {
            printf("&d", data[i]);
        }
        fprint();
    }
    return 0;
}

我收到错误“Id返回1退出状态”。我在网上看过很多来源,但仍然无法找到答案,请帮忙。

1 个答案:

答案 0 :(得分:1)

有很多错误。我将列出一些(参见评论):

double filename;错了。使用char filename[256];

const char *line();错了。使用char line[1000];

if (x=1)这会将{1}分配给x。使用if (x==1)

    while (fgets (&line, 1000, file) != NULL)
    {
        lineInt == line;
        scanf(&line, "string", &data[lineInt]);
        line == line + 1;
    }
    fclose(file);  /* close the file prior to exiting the routine */

您使用line有两个不同的目的:使用stdinscanf读取并使用fgets从文件中读取。并按照WeatherVane的说法删除;。而且scanf调用是垃圾。阅读手册!

for(i=1; i < line; i++);数组索引从0开始,而不是1。

printf("&d"...错了。使用"%d"

没有参数的

fprint();是错误的。你的程序可能会崩溃。

所以你的代码的每一行都有一些错误。请阅读关于C的书。并在编译期间打开所有警告。你会得到很多。